A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

Apresentações semelhantes


Apresentação em tema: "©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,"— Transcrição da apresentação:

1 ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Tecnólogo em Análise e Desenvolvimento de Sistemas 1 0 Semestre de 2013

2 ©Prof. Lineu MialaretAula 8 - 2/33Banco de Dados I Modelo Físico Modelo Lógico Modelo Conceitual Requisitos + Regras de Negócio BD Operacional Visão de Negócio Visão de Sistema Desenvolvimento de um um Aplicativo de Banco de Dados (1) Análise Projeto Modelo Funcional

3 ©Prof. Lineu MialaretAula 8 - 3/33Banco de Dados I Desenvolvimento de um um Aplicativo de Banco de Dados (2) M

4 ©Prof. Lineu MialaretAula 8 - 4/33Banco de Dados I Introdução (1) n O Modelo Relacional estabeleceu-se como o primeiro modelo de dados consolidado para aplicações comerciais. n Os primeiros SGBD´s tiveram por base o Modelo Hierárquico e o Modelo Rede. Esses dois antigos modelos de dados estão mais próximos da implementação no nível físico que o Modelo Relacional. n Existe uma base teórica fundamental no Modelo Relacional, a qual apóia o desenvolvimento de Aplicativos de Banco de Dados Relacionais e permite o processamento eficiente das necessidades de manipulação de informações de seus usuários. n Atualmente, o Modelo Relacional está presente em numerosas aplicações no âmbito de aplicações tradicionais de processamento de dados.

5 ©Prof. Lineu MialaretAula 8 - 5/33Banco de Dados I n O Modelo Relacional foi introduzido pelo pesquisador da IBM Edward Codd, em 1970, e gerou uma grande quantidade de pesquisa acadêmica ao longo da década de 70.  A Relational Model for Large Shared Data Banks, Communications of the ACM, 13(6), June 1970, artigo disponível na página da matéria. n Características marcantes desse modelo de dados: H formal por natureza H com estruturas de dados simples e uniformes. n O Modelo Relacional baseia-se na teoria matemática de conjuntos, onde os dados de um determinado domínio de conhecimento são representados por meio de uma coleção de relações ou tabelas. n É o modelo lógico de BD mais utilizado comercialmente. Hoje existem dezenas de SGBD´s relacionais no mercado, para todas as plataformas de hardware e software existentes. H Ex: Oracle, Sybase, Microsoft, etc. Introdução (2)

6 ©Prof. Lineu MialaretAula 8 - 6/33Banco de Dados I Modelo Relacional - Conceitos (1) n Um domínio D é um conjunto de valores atômicos, ou seja, cada valor nesse domínio é indivisível. Um tipo de dado ou formato é também associado a cada domínio. n Exemplo: H conjunto dos números inteiros, das cores disponíveis, dos brasileiros, etc. n Produto cartesiano: Sejam D 1,D 2,D 3,...,D k domínios de tipos de dados. O produto cartesiano representado por D 1 x D 2 x D 3 x... x D k é o conjunto de todas as k-tuplas (a 1,a 2,...,a k ) onde cada a i  D i. n Exemplo: Sejam k = 2 (denominado de grau da relação) D 1 = {0,1} D 2 = {a,b,c} Então R = {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)} é uma relação. n Uma relação r é um subconjunto do produto cartesiano de domínios.

7 ©Prof. Lineu MialaretAula 8 - 7/33Banco de Dados I n Um Banco de Dados Modelo Relacional consiste numa coleção de tabelas (relacionais), cada uma das quais designadas com um nome único. n Uma linha numa tabela representa um relacionamento entre um conjunto de valores. n Uma vez que essa tabela representa uma coleção de tais relacionamentos, há uma estreita correspondência entre o conceito de tabela e o conceito matemático de relação, a partir da qual se originou o nome desse modelo de dados. n Seja a tabela Conta apresentada a seguir na próxima transparência. Ela possui três colunas: numero_conta, nome_agencia e saldo. Essas colunas são denominadas de atributos. n Para cada atributo da tabela Conta há um conjunto de valores permitidos, ou seja, o domínio do atributo. n Por exemplo, para o atributo numero_conta, o domínio é o conjunto de todos os números de contas permitidos. Modelo Relacional - Conceitos (2)

8 ©Prof. Lineu MialaretAula 8 - 8/33Banco de Dados I Modelo Relacional - Conceitos (3) Exemplo da relação ou tabela Conta. numero_contanome_agenciasaldo

9 ©Prof. Lineu MialaretAula 8 - 9/33Banco de Dados I n Suponha que D 1 denote esse conjunto de valores de contas permitidos, D 2 identifique o conjunto de todas as agências e D 3 o conjunto de todos os valores de saldos permitidos. n Qualquer linha da tabela Conta consiste necessariamente de uma tupla (v 1,v 2,v 3 ) em que v 1 é um numero de conta, (ou seja, v 1 está no domínio D 1 ), v 2 é o nome de uma agência e v 3 representa um valor de saldo. n Em geral, a tabela Conta é um subconjunto de D 1 x D 2 x D 3 n Uma tabela de n atributos deve ser um subconjunto de D 1 x D 2 x... x D n n Matematicamente se define uma relação como um subconjunto de um produto cartesiano de uma lista de domínios. n Em essência, tabelas são relações, e pode-se usar os termos matemáticos relação e tupla como sinônimos de tabela e linha. Modelo Relacional - Conceitos (4)

10 ©Prof. Lineu MialaretAula 8 - 10/33Banco de Dados I n Formalmente, dados os conjuntos D 1,D 2,…,D n, uma relação r é um subconjunto de D 1 x D 2 x … x D n n Assim, uma relação pode ser entendida como um subconjunto de tuplas (a 1,a 2,…,a n ) onde cada a i  D i n Exemplo: sejam os valores dos seguintes atributos: nome_cliente = {Jones, Smith, Curry, Lindsay} endereco_cliente = {Main, North, Park} cidade_cliente = {Harrison, Rye, Pittsfield} n Então r = {(Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Lindsay, Park, Pittsfield) } é uma relação sobre o produto cartesiano de: nome_cliente x endereco_cliente x cidade_cliente Modelo Relacional - Conceitos (5)

11 ©Prof. Lineu MialaretAula 8 - 11/33Banco de Dados I Características dos Atributos n Cada atributo (coluna) de uma relação (tabela) tem um nome. n O conjunto de valores permitidos para cada atributo é chamado de domínio do atributo. n Os valores dos atributos devem ser atômicos, ou seja, os atributos são indivisíveis. n Por exemplo: H atributos multivalorados não são atômicos H atributos compostos não são atômicos. n O valor especial nulo (null) faz parte de qualquer domínio.

12 ©Prof. Lineu MialaretAula 8 - 12/33Banco de Dados I Esquema de Relação n Um esquema de relação R, denotado por R(A 1,A 2,...,A n ) é um conjunto de atributos {A 1,A 2,...,A n }. n Cada atributo A i é o nome do papel desempenhado por algum domínio D i no esquema de relação R. O domínio D i é chamado de domínio de A i e é denotado por dom(A i ). n Um esquema de relação é usado para descrever esquematicamente uma relação (tabela). n O nome da relação é R e o número de atributos n no esquema é denominado de grau da relação. n Exemplo: ESTUDANTE(Nome, CPF, Tel_Res, Endereco, Tel_Trab, Idade, CR) ou Estudante(Nome, CPF, Tel_Res, Endereco, Tel_Trab, Idade, CR)

13 ©Prof. Lineu MialaretAula 8 - 13/33Banco de Dados I Instância de Relação (1) n Uma instância da relação r de um esquema de relação R(A 1, A 2,...,A n ), denotado por r(R), é um conjunto de tuplas (linhas) r = {t 1,t 2,...,t m }. n Cada tupla é uma lista ordenada de n valores t = {v 1,v 2,...,v n } onde cada valor v i é um elemento de um domínio dom(A i ) ou um valor nulo (null) especial. n São também usados os termos intenção da relação para o esquema R e extensão da relação para uma instância r(R) da relação. n Portanto, uma instância de relação r(R) é tal que r(R)  (dom(A 1 ) X dom(A 2 ) X... X dom(A n )) ou seja, um subconjunto do produto cartesiano de uma lista de domínios

14 ©Prof. Lineu MialaretAula 8 - 14/33Banco de Dados I Instância de Relação (2) Exemplo de uma Instância de uma Relação.

15 ©Prof. Lineu MialaretAula 8 - 15/33Banco de Dados I n Os valores correntes (instância da relação) são especificados por uma tabela. n Um elemento t da instância de relação r(R) é uma tupla, representada por uma linha da tabela. Jones Smith Curry Lindsay nome_cliente Main North Park endereco_cliente Harrison Rye Pittsfield cidade_cliente Cliente atributos tuplas Instância de Relação (3) relação

16 ©Prof. Lineu MialaretAula 8 - 16/33Banco de Dados I A ordem das tuplas é irrelevante (as tuplas ou linhas da tabela podem ser armazenadas em qualquer ordem arbitrária). Exemplo: a relação Conta com as suas tuplas desordenadas. Características de uma Relação (1) numero_contanome_agenciasaldo Conta

17 ©Prof. Lineu MialaretAula 8 - 17/33Banco de Dados I n Requisitos de uma relação ou tabela (relacional) no Modelo Relacional: H as linhas (tuplas) da tabela contém dados sobre uma ou mais entidades H as colunas da tabela contém dados sobre atributos de uma entidade H as células da tabela só podem conter um único valor H todos os valores de uma coluna são do mesmo tipo H cada coluna tem um nome único H a ordem das colunas não é importante H a ordem das linhas (tuplas) não é importante H não pode haver duas linhas (tuplas) idênticas. Características de uma Relação (2)

18 ©Prof. Lineu MialaretAula 8 - 18/33Banco de Dados I Um Exemplo de uma Relação: Empregado (1) JacksonMurugan40 CopleyAlea300 CalderaJerry700 AbermanyMary100 SobreNomePreNomeNumeroEmpregado

19 ©Prof. Lineu MialaretAula 8 - 19/33Banco de Dados I Um Exemplo de uma Relação: Employee (2)

20 ©Prof. Lineu MialaretAula 8 - 20/33Banco de Dados I Jackson299-909040 Copley610-9850300 Caldera215-7789700 Abermany335-6421, 454-9744 100 LastNamePhoneEmployeeNumber Cells of the table hold a single value Um Exemplo de uma Tabela Não Relacional (1)

21 ©Prof. Lineu MialaretAula 8 - 21/33Banco de Dados I Abermany335-6421100 Jacksoni299-909040 Copley610-9850300 Caldera215-7789700 Abermany335-6421100 LastNamePhoneEmployeeNumber No two rows may be identical Um Exemplo de uma Tabela Não Relacional (2)

22 ©Prof. Lineu MialaretAula 8 - 22/33Banco de Dados I Terminologia no Modelo Lógico Relacional CampoRegistroArquivo ColunaLinhaTabela AtributoTuplaRelação n Sinônimos no Modelo Relacional:

23 ©Prof. Lineu MialaretAula 8 - 23/33Banco de Dados I Relational Database n A relational database consists of multiple relations. n Information about an enterprise is broken up into parts, with each relation storing one part of the information. n A bank system example: H Account: stores information about accounts H Depositor: stores information about which customer owns which account H Customer: stores information about customers n Storing all information as a single relation such as Bank(account-number,balance,customer-name,...) results in: H repetition of information (e.g. two customers own an account) H the need for null values (e.g. represent a customer without an account). n Normalization theory (Database Course II) deals with how to design relational well suited schemas.

24 ©Prof. Lineu MialaretAula 8 - 24/33Banco de Dados I Notação do Modelo Relacional (1) n Um esquema de relação R de grau n é representado como R(A 1,A 2,...,A n ). n Uma tupla numa instância de relação r(R) é representada como t = {v 1,v 2,...,v n } onde cada v i é o valor correspondente ao atributo A i. n t[A i ] refere-se ao valor v i na tupla t para o atributo A i. n t[A u,A v,...,A z ], onde A u,A v,...,A z são atributos de R, refere-se à subtupla de valores da tupla t correspondente. n Letras maiúsculas (Q, R, S) denotam nomes de relações. n Letras minúsculas (q, r, s) denotam instâncias de relações. n As letras (t, u, v) denotam as tuplas.

25 ©Prof. Lineu MialaretAula 8 - 25/33Banco de Dados I n Em geral, o nome de uma relação como por exemplo ESTUDANTE indica a instância corrente da relação, enquanto que ESTUDANTE(Nome,CPF,RG,Endereço,...) refere-se ao esquema da relação. n Nomes de atributos são algumas vezes qualificados com o nome da relação (tabela) à qual eles pertencem. n Exemplo: H ESTUDANTE.Nome H ESTUDANTE.CPF H Estudante.Endereco Notação do Modelo Relacional (2)

26 ©Prof. Lineu MialaretAula 8 - 26/33Banco de Dados I n Uma relação é definida como um conjunto de tuplas distintas. n Superchave (SK): são subconjuntos de atributos de um esquema de relação R com a propriedade de que duas tuplas não têm a mesma combinação de valores para esses atributos. n Para quaisquer duas tuplas distintas t 1 e t 2 numa instância r da relação R, t 1 [SK]  t 2 [SK] n Todo esquema de relação tem pelo menos uma superchave, que é aquela constituída pelo conjunto de todos os seus atributos. n Chave (K): num esquema de relação R, a chave K é uma superchave mínima, isto é, uma superchave da qual não se pode remover nenhum atributo, ou do contrário se tem um conjunto de atributos que não se constitui numa superchave. n Exemplo: H {CPF} é uma chave de ESTUDANTE, e qualquer conjunto de atributos que inclua CPF, tal como por exemplo {CPF,Nome,Idade} é uma superchave de ESTUDANTE. Chaves no Modelo Relacional (1)

27 ©Prof. Lineu MialaretAula 8 - 27/33Banco de Dados I n Chave Candidata: uma chave é determinada pelo significado dos atributos no esquema da relação. Em geral, um esquema de relação pode ter mais de uma chave, como por exemplo {CPF} e {RG}. Neste caso, cada uma das chaves é chamada de chave candidata. Chaves candidatas devem superchaves mínimas. n Chave Primária (PK): uma das chaves candidatas escolhida para identificar distintamente as tuplas da relação. n Por convenção, representa-se a chave primária sublinhando-se os atributos que a compõem. n As chaves candidatas que não são selecionadas são denominadas de Chaves Alternativas. Chaves no Modelo Relacional (2)

28 ©Prof. Lineu MialaretAula 8 - 28/33Banco de Dados I n Aspectos de integridade de um Modelo Relacional de Banco de Dados constituem-se num dos mais importantes princípios da construção do mesmo. n Esses aspectos são materializados por meio de restrições de integridade impostas ao modelo. n Dessa forma pode-se esquematizar resumidamente um Banco de Dados Relacional da seguinte forma: Aspectos de Integridade (1)

29 ©Prof. Lineu MialaretAula 8 - 29/33Banco de Dados I n As restrições de integridade resguardam o Banco de Dados contra danos acidentais. n Elas dizem respeito à correção, consistência e segurança, por exemplo, dos dados armazenados. n A garantia da integridade é a garantia de que o estado dos dados do Banco de Dados está sempre coerente com a realidade para o qual o mesmo foi projetado e criado. n Não basta apenas ter um esquema com os dados eficientemente bem estruturados, se não existir nenhum controle sobre os valores dos mesmos. n Se não há o gerenciamento de integridade, pode-se ter situações como a ocorrência de dados desconhecidos, como por exemplo: H a ausência de valor em atributos significativos, como empregado sem código e relacionamentos incorretos ou inexistentes, ou H a ocorrência de situações não triviais, como departamentos sem gerente ou alguém sendo gerente de mais de um departamento. Aspectos de Integridade (2)

30 ©Prof. Lineu MialaretAula 8 - 30/33Banco de Dados I Restrições de Integridade (1) n Restrições de integridade - H Restrição de domínio: 4 Os valores de cada atributo A i devem ser atômicos e pertencer a um determinado (domínio) dom(A i ). H Restrição de chave: 4 Todo esquema de relação deve ter uma chave e os valores destas chaves devem ser distintos. H Restrição de integridade de entidade: 4 Nenhum valor de chave primária pode ser nulo (null), porque este valor identifica a tupla numa relação. H Restrição de integridade referencial: 4 Especificada para manter a consistência entre tuplas de duas relações. Uma tupla numa relação que se refere a uma outra relação deve se referir a uma tupla existente naquela relação. A integridade referencial é especificada através do conceito de chave estrangeira (FK, “foreign key”).

31 ©Prof. Lineu MialaretAula 8 - 31/33Banco de Dados I n Chave Estrangeira (FK): Sejam dois esquemas de relações R 1 e R 2. Um atributo de R 2 é dito ser chave estrangeira (ou atributo transposto ou atributo de ligação) se ele, podendo ou não ser chave primária de R 2, é chave primária de R 1. Os esquemas de relações R 1 e R 2 não são necessariamente distintos. n Exemplo: Restrições de Integridade (2) r1r1 r2r2

32 ©Prof. Lineu MialaretAula 8 - 32/33Banco de Dados I n Se uma instância de relação r 2 inclui uma chave estrangeira correspondente a chave primária de uma instância de relação r 1, então todo valor da chave estrangeira de r 2 deve ser: H igual ao valor da chave primária em alguma tupla de r 1, isto é, t 1 [PK] = t 2 [FK]. Diz-se que a tupla t 2 referencia ou se refere à tupla t 1, ou H totalmente nulo (null), ou seja, cada valor do atributo que participa da chave estrangeira deve ser nulo. n Num Banco de Dados com muitas relações, haverá usualmente muitas restrições de integridade referencial. Para especificar estas restrições, deve-se primeiro ter um claro entendimento do significado de cada conjunto de atributos nos diversos esquemas de relação do Banco de Dados. n Restrições de integridade referencial geralmente surgem dos relacionamentos entre as entidades representadas pelos esquemas de relação. Restrições de Integridade (3)

33 ©Prof. Lineu MialaretAula 8 - 33/33Banco de Dados I n Restrições de integridade semântica: ou regras de negócio, são as restrições especificadas e mantidas num Banco de Dados Relacional, por exemplo, ou pelos programas de aplicação ou implementadas pelo próprio SGBD (Sistema Gerenciador de Banco de Dados com capacidade ativa), por meio de: H Visões (views) H Gatilhos (triggers) H Procedimentos Armazenados (stored procedures). n Exemplos: H “o salário de um empregado não deve ser maior do que o salário do seu supervisor” H “o número máximo de horas por semana que um empregado pode trabalhar em projetos é 56”. Restrições de Integridade (4)


Carregar ppt "©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,"

Apresentações semelhantes


Anúncios Google