Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelagem Relacional Banco de Dados Prof. Me. Orlando da Silva Junior / Prof. Me. Cesar Fernandes O que vamos estudar? Modelo relacional Restrições Integridade referencial Chaves Operações do modelo relacional Na prática: DBDesigner 2 Histórico O modelo de dados relacional foi introduzido pela IBM na década de 1970 e atraiu atenção imediata da comunidade e das empresas por sua simplicidade e base matemática. O modelo de dados relacional tem como fundamentos: A relação matemática como seu bloco de montagem básico; A teoria dos conjuntos; e A lógica de predicados As primeiras implementações comerciais surgiram na década de 1980, como o SDBG Oracle. Posteriormente, outros sistemas implementaram o modelo relacional, tanto comerciais, como o Access e o SQL Server (Microsoft), quanto de código aberto, com o MySQL e o PostgreSQL. 3 Linguagens A linguagem de consulta SQL, que é padrão nos SGBDs relacionais comerciais, é uma das linguagens associadas ao modelo relacional. A álgebra relacional e o cálculo relacional são duas linguagens formais associadas ao modelo relacional. Elas são a base da linguagem SQL. No caso da álgebra relacional, ela é usada nos detalhes internos de muitas implementações de banco de dados para processamento e otimização de consultas. Existem outros modelos de dados anteriores ao relacional, como o modelo hierárquico e o modelo em rede, que foram propostos na década de 1960 e implementados até o início da década de 1970. 4 O modelo relacional O modelo relacional representa o BD como uma coleção de relações: Cada relação é semelhante a uma tabela de valores; Cada linha da tabela é uma coleção de valores de dados relacionados e representa um fato correspondente a uma entidade ou a um relacionamento do mundo real. Os nomes da tabela e de coluna são usados para ajudar a interpretar o significado dos valores de cada linha. 5 6 (ELMASRI & NAVATHE, 2019) Na imagem abaixo, você pode observar: ▪ A relação Aluno apresentada em uma tabela; e ▪ As linhas da relação representando cada uma delas um aluno. 7 (ELMASRI & NAVATHE, 2019) Domínio Um domínio é um conjunto de valores atômicos: Atômico quer dizer que cada valor no domínio é indivisível em se tratando do modelo relacional formal; Um tipo de dado também é especificado para cada domínio. Podemos especificar um domínio definindo o tipo de dado do qual são retirados os valores de dados que formam o domínio. Observe nos exemplos ao lado como o tipo de dado também está especificado no domínio. 8 Exemplo 1 Nome do domínio: Nomes Especificação: conjuntos de cadeias de caracteres que representam nomes de pessoas. Exemplo 2 Nome do domínio: Cadastro_Pessoa_Fisica Especificação: conjunto de números do CPF com 11 dígitos Esquema relacional Um esquema relacional 𝑅 é formado por: Um nome de relação 𝑅; e Uma lista de atributos 𝐴. Cada atributo 𝐴𝑖 é o nome de um papel desempenhado por algum domínio no esquema de relação; O domínio de 𝐴𝑖 é indicado por dom 𝐴𝑖 ; O grau de uma relação é o número de atributos 𝑛 desse esquema de relação. 9 10 ALUNO (Nome, Cpf, Telefone_residencial, Endereco, Telefone_comercial, Idade, Media) ALUNO(Nome: string, Cpf: string, Telefone_residencial: string, Endereco: string, Telefone_comercial: string, Idade: integer, Media: real) dom(Nome) = Nomes dom(Cpf) = Cadastro_Pessoa_Fisica O esquema relacional ALUNO com 𝑔𝑟𝑎𝑢 = 7 O esquema relacional ALUNO usando o tipo de dado de cada atributo A especificação dos domínios dos atributos Nome e Cpf Relação Uma relação 𝑟 do esquema relacional 𝑅 é um conjunto de 𝑛 tuplas 𝑡, sendo diferente arquivo ou uma tabela porque apresenta as seguintes características: 1. Os elementos do conjunto não possuem ordem entre eles. As tuplas em uma relação não possuem nenhuma ordem particular. Dados de arquivos e tabelas são organizados ou exibidos em uma certa ordem; 2. A ordem dos valores de uma tupla é importante, mas a ordem dos atributos e seus valores não é tão importante, desde que a correspondência entre atributos e valores seja mantida; 3. Os valores de uma tupla são atômicos, ou seja, não é admitida a existência de atributos compostos ou multivalorados; e 4. O esquema de relação pode ser interpretado como uma asserção, em que cada tupla na relação pode ser interpretada como um fato. 11 Restrições As restrições são regras derivadas das regras no minimundo que o banco de dados representa. Elas ocorrem sobre os valores reais em um estado do banco de dados. Os principais tipos de restrição são: 1. Restrições implícitas: inerentes no modelo de dados; 2. Restrições explícitas: podem ser expressas diretamente nos esquemas do modelo de dados, como NOT NULL; 3. Regras de negócio: não podem ser expressas nos esquemas do modelo de dados, devem ser expressas e impostas pelos programas. 12 Restrições de chave Vamos assumir que: Todas as tuplas em uma relação precisam ser distintas; Duas tuplas não podem ter a mesma combinação de valores para todos os seus atributos. Normalmente, existem outros subconjuntos de atributos assumindo que duas tuplas não têm a mesma combinação de valores para esses atributos. Qualquer um desses subconjuntos é chamado de superchave. Uma superchave especifica uma restrição de exclusividade na qual duas tuplas distintas em qualquer estado não podem ter o mesmo valor para todos os atributos da superchave. 13 João Carlos 45 Encanador Masculino João Carlos 45 Encanador Masculino João Carlos 45 Encanador Masculino Ford João Carlos 45 Encanador Masculino Fiat Chaves Uma chave é uma superchave mínima porque: Não podemos remover nenhum atributo; e Devemos manter uma restrição de exclusividade. Quando um esquema de relação pode ter mais de uma chave, cada chave é chamada de chave candidata. A chave primária é a chave que identifica as tuplas da relação. As demais chaves são chamadas de chaves únicas. 14 (ELMASRI & NAVATHE, 2019) chaves candidatas chave primária chave única 15 Esquema de banco de dados relacional EMPRESA. (ELMASRI & NAVATHE, 2019) 16 Parte do estado de um banco de dados possível para o esquema relacional EMPRESA. (ELMASRI & NAVATHE, 2019) Bancos de dados relacionais e restrições As restrições que você acabou de conhecer se aplicam apenas a relações isoladas e seus atributos. Como um banco de dados costuma ter muitas relações com tuplas relacionadas de várias maneiras, existe um conjunto de estados de relação que satisfazem as restrições de integridade do esquema de banco de dados relacional. Quando nos referimos a um banco de dados relacional, estamos falando do seu esquema e do seu estado. Um estado válido do banco de dados obedece a todas as restrições de integridade. 17 Restrições de integridade Existem outros dois tipos de restrições consideradas parte do modelo relacional: Restrição de integridade de entidade Estabelece que nenhum valor de chave primária pode ser NULL; Ter valores NULL para a chave primária implica que não podemos identificar algumas tuplas. Restrição de integridade referencial É especifica entre duas relações; É usada para manter a consistência entre tuplas nas duas relações; É realizada por meio de chaves estrangeiras. 18 O atributo FUNCIONARIO.Numero_departamento combina com o atributo DEPARTAMENTO.Numero_departamento. (ELMASRI & NAVATHE, 2019) 19 Restrições de integridade referencial exibidas no esquema. (ELMASRI & NAVATHE, 2019) Bancos de dados relacionais e linguagens Os SGBDs relacionais precisam ter uma linguagem de definição de dados (DDL) para estabelecer um esquema de banco de dados relacional. As restrições de integridade também devem ser especificadas no esquema de banco de dados. Por isso, a DDL deve incluir meios para especificaros diversos tipos de restrições de modo que o SGBD possa impô-las automaticamente. 20 Operações do modelo relacional As operações do modelo relacional podem ser categorizadas em: Recuperações: podem ser especificadas por meio de operações da álgebra relacional; Atualizações: só são aplicadas quando as restrições de integridade especificadas no esquema não são violadas. Compreendem três tipos de operações sobre relações: Inserção de tuplas: pode ocasionar a violação de qualquer tipo de restrição; Alteração de valores de atributos de tuplas: exige a especificação de uma condição sobre os atributos; Remoção de tuplas: pode ocasionar a violação da integridade referencial. 21 Vamos praticar? Usando o DBDesigner4, construa o modelo lógico de dados para as seguintes relações: Fornecedores (Cod_Fornec, Nome, Endereco, Cidade, Estado, CEP, Telefone) Produtos (Cod_Produto, Descricao, Unidade, Estoque_Atual, Estoque_Minimo) PedidoCompras (Cod_Pedido, Cod_Fornec, Data_Pedido, Data_da_Entrega, Status) PedidoCompras_Itens (Cod_Item, Cod_Pedido, Cod_Produto, Quantidade, Preco, Preco_Total) 22 Desafio Considere o cenário descrito abaixo para uma base de dados de uma colônia de férias infantil e apresente o esquema de um modelo relacional, incluindo as entidades do esquema, suas integridades e seus relacionamentos. Para todas as pessoas na colônia é necessário saber o nome e a idade. Na colônia podemos ter monitores e crianças. Cada criança pertence a uma equipe. Cada equipe é identificada por uma cor. Existe um e um só monitor responsável por cada equipe. Na colônia são organizados campeonatos, que se identificam pelo nome da modalidade (futebol, vôlei, basquete, etc.). As equipes participam em campeonatos e é necessário saber quais os pares de equipes que se defrontaram em cada campeonato e em que data. 23
Compartilhar