Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 02 - Modelo Relacional 1 Aula 02 - Modelo Relacional Apresentação Os sistemas de gerenciamento de banco de dados, ou SGBDs, são conjuntos de softwares utilizados para o gerenciamento de uma base de dados, ou seja, são os programas utilizados para controlar, organizar, acessar e proteger as informações de uma empresa. Nos maiores SGBDs comerciais, o modelo de dados lógico utilizado é o relacional, que será objeto de estudos desta aula. Além disso, estudaremos a álgebra relacional, que define as operações que podemos realizar dentro do modelo relacional. Apresentação Objetivos Modelo relacional Conceitos do modelo relacional Relação Atributo Domínio Esquema Tupla Instância Campo Valor Nulo Chave primária Único Obrigatório Chaves candidatas Chave simples Chave composta Por que isso foi necessário? Chave estrangeira Integridade referencial Álgebra relacional Referências Saiba mais Aula 02 - Modelo Relacional 2 Objetivos Descrever o modelo relacional; Escrever expressões de álgebra relacional. Modelo relacional O modelo relacional de dados foi proposto por Edgar Codd em 1970, baseando-se em conceitos matemáticos para proporcionar uma representação confiável para bancos de dados. O modelo relacional se propõe a representar os dados em uma coleção de relações. Dessa forma, as relações são vistas como tabelas de valores, nas quais cada linha representa uma coleção de dados relacionados. Esses valores podem ser interpretados como fatos, descrevendo uma instância de uma entidade ou de um relacionamento do mundo real. Os nomes da tabela e das colunas são utilizados para facilitar a interpretação dos valores armazenados em cada linha da tabela. Edgar Frank Codd (Dorset, 23 de agosto de 1923 Flórida, 18 de abril de 2003 foi um matemático britânico conhecido por desenvolver o banco de dados relacional. Conceitos do modelo relacional A seguir conheceremos alguns conceitos importantes. Vamos lá. Relação Aula 02 - Modelo Relacional 3 No modelo relacional, uma relação é uma tabela onde são armazenados dados. Por exemplo, podemos ter em nosso banco de dados as relações DEPARTAMENTO e REGIÃO, que armazenam, respectivamente, os dados dos departamentos e das regiões. As relações apresentam as seguintes características: Não possuem duas linhas iguais. Os atributos devem possuir valores atômicos (indivisíveis). Atributo Os atributos de uma relação constituem as colunas da tabela. Por exemplo, na tabela DEPARTAMENTO temos os atributos ID, NOME e ID_REGIAO. É importante ressaltar que todo atributo possui um domínio. O conjunto dos atributos de uma tabela constituem o seu esquema. Aula 02 - Modelo Relacional 4 Domínio O domínio consiste de um conjunto de valores válidos para um determinado atributo. Como, por exemplo, o domínio do atributo NOME na tabela de departamentos é constituído dos nomes válidos de departamento na empresa. Todo atributo possui um domínio, no mínimo constituído pelo seu tipo, numérico, alfanumérico, data etc. Dessa forma, todos os valores em uma coluna são necessariamente do mesmo tipo. O fato de os atributos respeitarem o seu domínio é denominado integridade de domínio. Esquema O esquema de uma relação descreve a sua estrutura, sendo constituído pelo conjunto de seus atributos e suas restrições. Por exemplo: O esquema da tabela DEPARTAMENTO é composto de ID, NOME e ID_REGIAO, ou seja, Departamento ID, NOME, ID_REGIAO. Aula 02 - Modelo Relacional 5 Tupla As tuplas de uma relação constituem as linhas da tabela. Por exemplo, na tabela DEPARTAMENTO a linha do departamento de vendas constitui uma tupla da relação. O conjunto das tuplas de uma tabela constitui a sua instância. Instância A instância é composta pelo total dos valores de seus atributos, consistindo, na prática, no conjunto dos dados armazenados no BD. Por exemplo, na tabela DEPARTAMENTO a instância é formada pelas suas quatro linhas, ou seja, pelos dados dos departamentos de vendas, operações, administrativo e financeiro. Campo O campo de uma relação é definido como a área de interseção entre um atributo (coluna) e uma tupla (linha). Por exemplo, na figura vemos a delimitação do campo NOME na segunda linha da tabela. Todo campo possui um valor. Aula 02 - Modelo Relacional 6 Valor O valor de um campo é o seu conteúdo. Por exemplo, na figura vemos que o valor do campo NOME na segunda linha é OPERAÇÕES. Quando um campo não possui um valor dizemos que ele é nulo. Nulo Quando afirmamos que o valor de um campo é nulo, estamos afirmando que ali não existe nada. Nulo, não zero. Nulo não é um espaço em branco, não é sequer um valor. Nulo é ausência de valor que pode se originar do fato de não sabermos, ou de não existir o valor a ser colocado. Aula 02 - Modelo Relacional 7 Por exemplo, na figura vemos que o valor do campo CPF da última linha da tabela DEPENDENTES é nulo, ou seja, ali não há valor algum. Agora, por que isso aconteceu? Vamos supor que Carlos Ventura tenha mais de 18 anos, então, por lei deveria ter CPF, mas quando fomos cadastrá-lo no banco de dados não sabíamos o número de seu CPF, então não colocamos nada. Outra situação seria o fato de Carlos Ventura ser uma criança de 5 anos, que obviamente não possui CPF. Cabe ressaltar que somente é possível deixar nulos campos de atributos não obrigatórios. Chave primária Uma chave primária é o atributo da relação utilizado para identificar unicamente uma tupla. É normalmente denominada PK do termo em inglês primary key. Um atributo, para ser chave primária, deve obrigatoriamente ser único e obrigatório. A chave primária é escolhida entre as chaves candidatas de uma relação e pode ser simples ou composta. Por exemplo, a figura mostra as colunas ID das tabelas DEPARTAMENTO e REGIÃO constituindo suas chaves primárias. Uma observação importante é que embora os SGBD permitam a criação de tabelas sem chave primária, o modelo relacional prevê que toda relação deve possuir uma PK. Aula 02 - Modelo Relacional 8 Único Quando afirmamos que uma PK deve ser única, significa que nenhuma tupla de uma mesma relação pode ter o mesmo valor para o atributo escolhido como chave primária. Isso é denominado integridade de chave primária. Se observarmos as tabelas anteriores, veremos que o valor do ID na tabela DEPARTAMENTO não se repete. De fato, se tivéssemos valores repetidos na coluna ID, como poderíamos identificar a tupla? Na próxima tabela, vemos que existem duas linhas com o mesmo valor de ID 20. Se desejamos nos referir ao Departamento 20, teríamos uma dúvida: O departamento 20 que desejamos é o de OPERAÇÕES ou o ADMINISTRATIVO? Obrigatório Aula 02 - Modelo Relacional 9 O valor da chave primária não pode ser vazio, ou seja, não pode ser nulo. O valor nulo não permite a identificação de uma tupla. Essa restrição é denominada integridade de entidade. De fato, a chave primária serve como representante na base de dados de uma entidade. Se a chave primária for vazia, a linha não corresponde a nenhuma entidade. Observe a tabela. Repare que todas as linhas possuem um valor na coluna ID tanto na tabela DEPARTAMENTO quanto na tabela REGIÃO Observe a próxima tabela. Aula 02 - Modelo Relacional 10 Como poderíamos identificar uma região se existissem na tabela várias linhas com ID nulo? Como poderíamos referenciar a primeira linha e a última? Por isso uma PK não pode ser nula. Chaves candidatas É o atributo ou conjunto de atributos de uma relação que permite identificar a linha de forma única. Uma delas será escolhida como chave primária, a partir da qual o SGBD irá manter automaticamente a restrição de unicidade. Da mesma forma que a chave primária, uma chave candidata pode ser simples ou composta. Na tabela DEPARTAMENTO, a seguir, possuímos duas chaves candidatas simples, a coluna ID e a coluna NOME, pois ambas possuem valores únicos e não nulos, e qualquer um deles pode ser PK da tabela: Aula 02 - Modelo Relacional 11 Chave simples Dizemos que uma chaveprimária é simples quando é composta por apenas um atributo. Podemos notar que tanto na tabela DEPARTAMENTO como na tabela REGIÃO a PK é composta apenas pela coluna ID, que, por possuir valores únicos e não nulos, permite a identificação de forma unívoca da linha. Chave composta Dizemos que uma chave primária é composta quando possui mais de um atributo. No exemplo a seguir, a tabela Dependentes possui uma PK composta pela coluna “Responsável” e pela coluna “Id”. Aula 02 - Modelo Relacional 12 Por que isso foi necessário? Como uma PK deve ser única e não nula, ao analisarmos a tabela em busca de uma chave candidata podemos observar que: A coluna “Responsável” é obrigatória, mas pode possuir valores repetidos. A coluna “Id” é obrigatória, mas pode possuir valores repetidos. A coluna “Id” é obrigatória, mas pode possuir valores repetidos. A coluna “Grau” é obrigatória e pode possuir valores repetidos. A coluna “CPF” apesar de ser única pode possuir linhas nulas. A análise mostra que não temos como fazer uma PK simples, mas se considerarmos o par “Responsável/Id”, não existirá repetição, pois para um mesmo “Responsável” o valor de “ID” não se repete. O que permite que criemos uma PK composta. Chave estrangeira É quando um atributo de uma relação é chave primária PK em outra. É normalmente denominada FK do termo em inglês foreign key, constituindo-se na ligação lógica entre as tabelas, implementando fisicamente os Aula 02 - Modelo Relacional 13 relacionamentos da modelagem conceitual. Através das operações com as chaves estrangeiras, garante-se a integridade referencial do banco de dados. Por exemplo, a seguir vemos que a coluna ID_REGIAO na tabela DEPARTAMENTO é uma chave estrangeira para a tabela REGIÃO na coluna ID. Integridade referencial A Integridade referencial determina que as chaves estrangeiras FK têm que ser respeitadas, ou seja, se existe um determinado valor para o atributo na tabela onde ele é chave estrangeira, esse valor deve existir na tabela em que ele é chave primária. ⚠ Nas tabelas anteriores podemos observar que todos os valores do atributo ID_REGIAO na tabela DEPARTAMENTO existem no atributo ID PK da tabela REGIÃO. Se tentássemos inserir na tabela DEPARTAMENTO um valor de ID_REGIAO = 4, o SGBD acusaria um erro de violação de chave estrangeira e não permitiria a inserção da linha. Álgebra relacional A álgebra relacional é uma coleção de operações canônicas que são utilizadas para manipular as relações. Essas operações são utilizadas para selecionar tuplas de relações individuais e para combinar tuplas relacionadas de relações diferentes para especificar uma consulta em um determinado banco de dados. Aula 02 - Modelo Relacional 14 O resultado de cada operação é uma nova relação, a qual também pode ser manipulada pela álgebra relacional. 💡 Antes de encerrar seus estudos, conheça detalhadamente as principais operações da álgebra relacional. Referências CODD, E. F. A relational model of data for large shared data banks. In: ______. Communications of the ACM, Nova Iorque, v. 13, n. 6, p. 377387, jun. 1970. DATE, C. J. Introdução a sistemas de banco de dados. 7. ed. Rio de Janeiro: Campus, 2000. ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 6. ed. São Paulo: Pearson Addison Wesley, 2011. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistemas de banco de dados. 5. ed. Rio de Janeiro: Campus, 2006. Saiba mais Pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto. Em caso de dúvidas, converse com seu professor online por meio dos recursos disponíveis no ambiente de aprendizagem. Leia os textos: Modelagem relacional; O modelo relacional de dados – Parte I; O que é um modelo de banco de dados? https://www.devmedia.com.br/modelagem-relacional/19614 http://www.linhadecodigo.com.br/artigo/109/o-modelo-relacional-de-dados-parte-i.aspx https://www.lucidchart.com/pages/pt/o-que-e-um-modelo-de-banco-de-dados?a=0
Compartilhar