Programa DCC011 Introdução a Banco de Dados Modelo Relacional Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Introdução Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência de banco de dados. Modelos de dados e linguagens Modelo entidade relacionamento d i t (ER), modelorelacional, l l álgebra relacional, SQL. Projeto de bancos de dados Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. Novas Tecnologias e Aplicações de Banco de Dados 2 Modelo Entidade Relacionamento Processo de Projeto de Bancos de Dados Independente de SGBD Requisitos de Dados Esquema Conceitual Modelo de dados de alto nível 4 Modelo Entidade Relacionamento Entidades, atributos, relacionamentos Atributos: simples, composto, multi valorado Atributos chave Papéis Relacionamentos Cardinalidades (1:1, 1:N, N:M) Participação (total, parcial) 5 Figura DCC011 3.15 profa. Diagrama Mirella M. MoroER para o esquema EMPRESA. 6
IMPORTANTE Modelo Conceitual CONCEITOS, ABSTRAÇÕES ENTIDADE, ATRIBUTO, RELACIONAMENTO Piloto, equipe, país, circuito, corrida Piloto representa País Equipe sede em País SE país é uma entidade; Piloto e equipe possuem atributo País? Mas a especificação diz!!!!???? N diagramas conceituais para um cenário Diagrama tem APENAS o que está na especificação Restrições, exceções, peculiaridades, viagem na maionese: OUTRO MODELO Pecar por excesso x Pecar por falta Modelo Relacional (3 rd ed: 7.1 7.2; 5 th ed: 5.1 5.2) 1. Introdução 2. Conceitos do Modelo Relacional 3. Básicas 4. Esquema do BD Relacional 5. do Esquema 6. Exercício 7 Processo de Projeto de Bancos de Dados Independente de SGBD SGBD Específico Requisitos de Dados Esquema Conceitual Modelo de dados de alto nível Esquema Lógico (Conceitual) em um modelo de dados de um SGBD específico 1. Introdução O modelo relacional representa um banco de dados como um conjunto de relações Informalmente uma relação = uma tabela de valores cada linha representa uma coleção de dados relacionados cada linha de uma tabela representa um fato que tipicamente corresponde a uma entidade ou relacionamento do mundo real 9 10 2. Conceitos do Modelo Relacional Conceitos: Esquema de Relação Linhas de uma relação (tabela) = tuplas Cabeçalho de cada coluna = atributo Conjunto de valores que pode aparecer em cada coluna = domínio Descreve a relação R(A 1,A 2,...,A n ), onde: R Nome da relação A i Nome de um atributo n Grau da relação Cada Atributo A i e o nome de um papel desempenhado por algum dominio D no Esquema da relação R Exemplo: Estudante (Nome, CPF, Telefone, Endereço, GPA) Figura 7.1 Os atributos e as tuplas de uma relação ALUNO. 11 12
Conceitos: Relação Relação r(r) Conjunto de tuplas: r = {t 1,t 2,..., t m } Cada tupla é uma lista ordenada de valores: t = <v 1,v 2,..., v n > Attributo A i na tupla t: t[a i ] r(r) dom(a 1 ) x dom(a 2 ) x... x dom(a n ) Características de uma Relação As tuplas de uma relação não são ordenadas d (entre elas) Figura 7.2 A relação ALUNO da Figura 7.1 com uma ordenação diferente das tuplas. Registros em um arquivo são ordenados de acordo com a posição em que são armazenados no disco 13 14 Características de uma Relação Uma tupla é uma lista ordenada de valores O valor de cada atributo em uma tupla é atômico Atributos compostos e multivalorados não são permitidos O valor especial null é utilizado para representar valores não conhecidos ou não aplicáveis a uma determinada tupla Um esquema de relação pode ser visto como uma declaração ou asserção Esquema de relação = Predicado Valores em cada tupla satisfazem o predicado 3. Básicas Restrições de domínio Especificam que o valor de cada atributo A de uma relação deve ser um valor atômico do domínio dom(a) 15 16 Restrições de chave Por definição todas as tuplas são distintas Um conjunto de atributos SK de um esquema de relação R tal que: para duas tuplas distintas quaisquer t 1 e t 2 de r(r) t 1 [SK] t 2 [SK] é uma super chave de R Super chave default: todos os atributos Restrições de chave Um esquema de relação pode ter mais de uma chave chaves candidatas Dentre as chaves candidatas de um esquema de relação, uma delas é indicada como chave primária e as demais constituem as chaves alternativas Uma chave de R é uma super chave com a propriedade adicional de que nenhum de seus subconjuntos também seja uma super chave de R {SSN, Name, Age} = super chave; {SSN} = chave 17 Figura 7.4 A relação CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi. 18
4. Esquema de um BD Relacional Restrições em valores null Especifica se a um atributo é permitido ter valores null Exemplo: todo Aluno deve ter um nome válido, não null Um esquema de BD relacional S define: um conjunto de esquemas de relação R = {R 1,R 2,...,R n }, e um conjunto de restrições de integridade I S = (R,I) 19 20 Esquema de um BD Relacional 5. do Esquema Outras restrições além das restrições de domínio e de chave Restrição de integridade de entidade Nenhum componente de uma chave primária i pode ser nulo Figura 7.5 Diagrama para o esquema do banco de dados relacional EMPRESA. 21 22 Restrição de integridade referencial Usada para manter a consistência entre tuplas de duas relações Uma tupla em uma relação que se refere a outra relação deve referenciar uma tupla existente nesta outra relação Aparecem devido aos relacionamentos entre entidades Restrição de integridade referencial Seja FK um conjunto de atributos de um esquema de relação R 1 definido sobre o mesmo domínio dos atributos da chave primária PK de outro esquema R 2. Então,,para qualquer q tupla t 1 de R 1: t 1 [FK] = t 2 [PK], onde t 2 é uma tupla de R 2 ou t 1 [FK] é nulo 23 24
Notação NomeTabelaPrincipal Chave Atributo 1 Atributo n NomeTabelaReferenciada Atributo 1 Atributo n Chave Figura 7.7 Restrições de integridade referencial exibidas no esquema de um banco de dados relacional EMPRESA. 25 26 Revisão A restrição de integridade referencial pode ser expressa pela notação R 1 [FK] R 2 [PK], onde PK é a chave primária de R 2 e FK é a chave estrangeira de R 1 Exemplos: EMPLOYEE[DNO] DEPARTMENT[DNUMBER] WORKS_ON[ESSN] EMPLOYEE[SSN] WORKS_ON[PNO] PROJECT[PNUMBER] Uma relação = uma tabela de valores Tuplas, atributos, domínios Restrições de domínio Restrições de chave chave e super chave; chave candidata, chave primária, chave alternativa Restrições de valores null Esquema = relações + restrições integridade Restrição de integridade de entidade chave não nulo Restrições de integridade referencial chave estrangeira 27 28 INST CPF emails INST CPF email email email 29 Lista encadeada é uma implementação de multivalores 30
31 32 TÍTULO PGINI PGFIN VEIC TÍTULO LOCAL INST CPF artigo cpf email TÍTULO PGINI PGFIN VEIC 34 33 TÍTULO PGINI PGFIN VEIC AUT 35 cpf art PESQ TÍTULO PGINI PGFIN VEIC 36
TÍTULO PGINI PGFIN VEIC Pesquisador (CPF, nome, inst) inst referencia Instituição PesqEmail (CPF, email) CPF referencia Pesquisador Instituição (cod, nome) Artigo (cod, título, pgini, pgfin, veic) veic referencia Veículo Veículo (cdv, título, local) PesqArtigo (cpf, art) cpf referencia Pesquisador art referencia Artigo cpf PESQ art Gráfico e Texto Equivalentes Exercícios Carona, Chefs, Árvore Genealógica EM DUPLA/TRIO Adicionar chaves primárias e estrangeiras NomeT1 Chave NomeT2 Atributo 1 NomeRel NomeT2 (chave2, atrib1,, atribn) NomeT1 (chave1, atrib1,, nomerel) nomerel referencia NomeT2 OU Atributo 1 Atributo n Chave nomerel referencia NomeT2:chave2 37 38