MINISTÉRIO DA EDUCAÇÃO PRÓ-REITORIA DE ENSINO DEPARTAMENTO DE EDUCAÇÃO A DISTÂNCIA ESCOLA TÉCNICA ABERTA DO PIAUÍ ETAPI CAMPUS TERESINA CENTRAL

Tamanho: px
Começar a partir da página:

Download "MINISTÉRIO DA EDUCAÇÃO PRÓ-REITORIA DE ENSINO DEPARTAMENTO DE EDUCAÇÃO A DISTÂNCIA ESCOLA TÉCNICA ABERTA DO PIAUÍ ETAPI CAMPUS TERESINA CENTRAL"

Transcrição

1 1

2 MINISTÉRIO DA EDUCAÇÃO PRÓ-REITORIA DE ENSINO DEPARTAMENTO DE EDUCAÇÃO A DISTÂNCIA ESCOLA TÉCNICA ABERTA DO PIAUÍ ETAPI CAMPUS TERESINA CENTRAL 2

3 3 PRESIDENTE DA REPÚBLICA Luiz Inácio Lula da Silva MINISTRO DA EDUCAÇÃO Fernando Haddad GOVERNADOR DO ESTADO Wellington Dias REITOR DO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA Francisco da Chagas Santana SECRETÁRIO DE EDUCAÇÃO A DISTÂNCIA DO MEC Carlos Eduardo Bielschowsky COORDENADORIA GERAL DA UNIVERSIDADE ABERTA DO BRASIL Celso Costa SECRETÁRIO DE EDUCAÇÃO DO ESTADO DO PIAUÍ Antonio José Medeiros COORDENADOR GERAL DO CENTRO DE EDUCAÇÃO ABERTA A DISTÂNCIA DO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA Elanne Cristina Oliveira dos Santos SUPERITENDÊNTE DE EDUCAÇÃO SUPERIOR NO ESTADO Eliane Mendonça ORGANIZAÇÃO DO MATERIAL DIDÁTICO Márcio Aurélio Carvalho de Morais

4 4 Este texto é destinado aos estudantes aprendizes que participam do programa Escola Técnica Aberta do Brasil (e-tec Brasil), vinculado à Escola Técnica Aberta do Piauí (ETAPI) do Instituto Federal de Educação, Ciências e Tecnologia do Piauí (IFPI), com apoio da Prefeitura Municipal dos respectivos pólos: Alegrete do Piauí, Batalha, Monsenhor Gil e Valença do Piauí. O presente texto é uma Introdução sobre a tecnologia do Banco de Dados, assunto vasto e é composto por cinco (05) capítulos assim distribuídos: No Capítulo 1 é apresentado uma visão geral sobre Banco de Dados, conceitos necessários para que o aluno desenvolva os próximos capítulos. No Capítulo 2 a Abordagem Entidade-Relacionamento e o processo de modelagem conceitual de um banco de dados. No Capítulo 3 apresentamos uma introdução sucinta sobre banco de dados relacionais. No Capítulo 4 apresentamos conceitos de Normalização e as três principais formas normais. No Capítulo 5 introduzimos a linguagem SQL, que é a linguagem padrão para uso em banco de dados.

5 5 Boas Vindas! Caro (a) Cursista, Bem vindo (a) à disciplina Introdução a Banco de Dados. Esta é a nossa Apostila, material elaborado com o objetivo de contribuir para o desenvolvimento de seus estudos e para a ampliação de seus conhecimentos acerca da citada disciplina.

6 6 Índice Geral Conteúdo 1. INTRODUÇÃO ORGANIZAÇÃO DE UM BANCO DE DADOS SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD) VANTAGENS E DESVANTAGENS DO USO DE UM SGBD CLASSIFICAÇÃO DOS SGBDs Modelo Hierárquico Modelo Rede Modelo Relacional MODELAGEM DE BANCO DE DADOS Descrição dos Elementos da Abstração PROJETO DE BANCO DE DADOS ATIVIDADES DO CAPÍTULO ENTIDADE RELACIONAMENTO CARDINALIDADE DE RELACIONAMENTO Cardinalidade Máxima...36 Relacionamento Binários...38 Relacinamento Ternário Cardinalidade Mínima ESTUDO DE CASO SOBRE ENTIDADES E RELACIONAMENTOS ATRIBUTO IDENTIFICADORES GENERALIZAÇÃO / ESPECIALIZAÇÃO ESQUEMAS GRÁFICOS E TEXTUAIS DE MODELOS ER ATIVIDADES DO CAPÍTULO BANCO DE DADOS RELACIONAIS Composição de um Banco de Dados Relacional CHAVE...65 CHAVE PRIMÁRIA...65

7 DOMÍNIOS E VALORES VAZIOS RESTRIÇÕES DE INTEGRIDADE OPERAÇÕES RELACIONAIS E ÁLGEBRA RELACIONAL Atividades do Capítulo CONCEITO FORMAS NORMAIS EXISTENTES...99 ATIVIDADES DO CAPÍTULO SQL LINGUAGEM DE DEFINIÇÃO DE DADOS (DATA DEFINITION LANGUAGE - DDL) LINGUAGEM DE MANIPULAÇÃO DE DADOS (DATA MANIPULATION LANGUAGE - DML) LINGUAGEM DE CONTROLE DE DADOS LCD EXEMPLOS DE SQL SELECT EXEMPLOS DE SQL SELECT COM BETWEEN INSERIR, ALTERAR E EXCLUIR DADOS COM INSERT INTO, UPDATE E DELETE CRIAR TABELAS, ALTERAR E APAGAR COM CREATE TABLE, ALTER E DROP ATIVIDADES DO CAPÍTULO REFERÊNCIAS

8 8 Índice de Figuras CAPÍTULO 1 Fig. 01 Organização de um SGBD Fig. 02 Diagrama de um modelo hierárquico de banco de dados Fig. 03 exemplos de SGBDs relacionais Fig. 05 Modelagem conceitual CAPÍTULO 2 Fig. 01 representação gráfica de uma entidade Fig Fig Fig Fig Fig Fig Fig Fig. 09 exemplos de relacionamentos cardinalidade n:n Fig Fig. 11 cardinalidade em relacionamento ternários Fig Fig. 13 modelo ER de uma Universidade Fig. 14 representação gráfica de atributos Fig. 15 representação da cardinalidade de atributos Fig Fig Fig Fig. 19 identificar composto: nº do corredor / nº da prateleira Fig

9 9 Fig. 21 exemplo de relacionamento identificador Fig Fig Fig. 24 Generalização/Especialização Fig. 25 símbolos usados na construção de esquemas ER Fig. 26 representação gráfica e textual de um DER CAPÍTULO 3 Fig. 02 tabela com chave primária composta Fig Fig. 04 chave estrangeira dentro da própria tabela Fig Fig. 06 operadores lógicos Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig

10 10 Fig Fig Fig Fig Fig Fig CAPÍTULO 4 Fig Fig Fig Fig Fig Fig Fig Fig Fig 09 primeira forma normal Fig 10 segunda forma normal Fig 11 terceira forma normal CAPÍTULO 5 Fig. 01 tabela marcas Fig. 02 tabela carros

11 11

12 Banco de Dados: uma visão geral Capítulo 1 12 Meta Geral Apresentar ao aluno conceitos básicos necessários para o entendimento do tema Banco de Dados. Ao final deste capítulo, você deverá ser capaz de: Objetivos 1. Perceber o alto valor da INFORMAÇÃO no mundo globalizado; 2. Entender a importância do Banco de Dados para o processo de informatização das informações; 3. Conceituar Banco de Dados; 4. Sistemas Gerenciadores de Base de Dados; 5. Entender o processo de modelagem de Bancos de Dados

13 13 1. INTRODUÇÃO Os bancos de dados se engenharam graças à necessidade das grandes empresas de armazenar grandiosas quantidades de informação de uma forma rápida, simples e confiável, e que por sua vez pudessem acessá-la em qualquer momento sem a necessidade de se deslocar às salas dedicadas a arquivar documentação, como até há pouco tempo se fazia. Para ilustramos melhor a evolução das necessidades de informação, vamos analisar o crescimento das empresas no nosso país. O Armazém A grande maioria das empresas nacionais teve seu início de atividade caracterizado por um negócio de pequeno porte. Para ilustrar essa figura típica, poderíamos utilizar a imagem de uma pequena quitanda, um armazém de bairro. Ali o proprietário (um futuro grande empresário) administra seu negócio junto com seus familiares. Observa-se que existe um domínio completo sobre o negócio e sobre suas informações. O proprietário obtém dados rapidamente sobre seus estoques simplesmente olhando para seus itens nas prateleiras. Conhece pessoalmente seus clientes, normalmente pessoas do bairro, permitindo que comprem a crédito através de um caderno de pinduras por cliente, e também conhece seus fornecedores pessoalmente. O controle de fluxo de caixa resume-se a simples operações de pagar, receber e sobrar, diretamente na caixa registradora. Existe então a INFORMAÇÃO complemente acessível, disponível de qualidade suficiente para o negócio. Mas como este é um país de iniciativas, um país de empreendedores, o bom atendimento prestado pelo proprietário do armazém faz com que a clientela aumente, solicite produtos melhores, mais variedade e quantidade, além de formas de pagamento diferenciadas, etc., e o negócio vai crescendo, ate que encontremos o velho armazém transformado em um supermercado. Com o crescimento, o volume de informações cresce de forma quase exponencial, qualifica-se e especializa-se. O proprietário do antigo armazém, agora um promissor supermercado, administra um sistema muito mais complexo e conta com profissionais especializados que o auxiliam no atendimento de atividades específicas, tanto junto aos clientes quanto no controle do negócio, e principalmente, para controlar as informações agora setorizadas e especializadas. Existem, na empresa, atividades profissionais específicas tais como: contador, comprador, gestor de estoques, etc. Este é apenas o instante inicial da Departamentalização da empresa, mas já nos fica claro como o ser humano tem dificuldade tem dificuldade de lidar com grandes massas de informação. Já não é mais possível ao proprietário, manipular e ter o domínio completo das informações de seu negócio. Neste instante, pode ser estratégico e crítico para o negócio a necessidade de informatização do supermercado.

14 14 Podemos definir banco de dados, como sendo um conjunto de dados interrelacionados e armazenados sem redundâncias desnecessárias, os quais servem às aplicações sem estar relacionados de uma maneira direta entre eles. BANCO DE DADOS = CONJUNTO DE DADOS INTEGRADOS QUE TEM POR OBJETIVO ATENDER A UMA COMUNIDADE DE USUÁRIOS. HEUSER, Um banco de dados deve conter dados numa ordem determinada por um esquema ou modelo, sempre atendendo a um propósito definido. Podem ser citados como exemplos a lista telefônica, a lista de códigos de endereçamento postal e outros ORGANIZAÇÃO DE UM BANCO DE DADOS Para considerar a um banco de dados organizado, deve-se cumprir os seguintes objetivos: Tem que ser versátil: isto quer dizer que, dependendo dos usuários ou das aplicações, possam fazer diferentes coisas ou tratem aos dados de formas diferentes; Tem que atender com a rapidez adequada a cada aplicação ou empresa, atendendo a quem requerê-lo; Tem que ter um índice de redundância o mais baixo possível; Ter uma alta capacidade de acesso para ganhar o maior tempo possível na realização de consultas; Ter um alto índice de integridade, isto significa que ao ter muitos usuários atacando a um mesmo banco de dados não pode ter falhas na inserção de dados, erros por redundância ou lenta atualização; Obviamente, tem que ter um nível altíssimo de segurança e privacidade já que os dados que se armazenam em um banco de dados podem ser

15 15 altamente confidenciais ou importantes. Neste ponto, também entram os meios físicos de proteção contra fogo, roubo, etc.; Por último, tem que ser possível sua constante atualização para não deixar o banco de dados antigo e inservível. Quando fazemos uma mudança na organização física dos dados não deve afetar aos programas, portanto também tem que ter uma independência física dos dados. Assim como tem que ter total independência lógica com os dados, isto quer dizer que se fazemos mudanças na estrutura lógica dos dados (agregar novos campos a uma tabela) não devem afetar às aplicações que utilizem esses dados SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD) Um Sistema Gerenciador de Base de Dados (SGBD) é uma coleção de softwares que permitem aos usuários criarem e manipularem uma base de dados. Um SGBD é, assim, um sistema de software de propósito geral que facilita o processo de definir, construir e manipular bases de dados de diversas aplicações. DEFINIR uma base de dados envolve a especificação de tipos de dados a serem armazenados na base de dados. CONSTRUIR uma base de dados é o processo de armazenar os dados em algum meio que seja controlado pelo SGBD. MANIPULAR uma base de dados indica a utilização de funções como a de consulta, para recuperar dados específicos, modificação da base de dados para refletir mudanças no mini-mundo (inserções, atualizações e remoções), e geração de relatórios.

16 16 Fig. 01 Organização de um SGBD. No início da década de 60, foram lançados os primeiros sistemas gerenciadores de banco de dados (SGDB), tendo como principal proposta o aumento da produtividade nas atividades de desenvolvimento e manutenção de sistemas, até então realizadas de forma artesanal em linguagens de programação convencionais de primeira e segunda geração VANTAGENS E DESVANTAGENS DO USO DE UM SGBD Redução e Eliminação de redundâncias na arquitetura de arquivos, cada sistema possui seus próprios arquivos, provocando desperdício de espaço de armazenamento quando as informações são duplicadas. Com a utilização de bancos de dados, os dados comuns a mais de um sistema podem ser compartilhadas, o que permite o acesso a uma única fonte da informação. Eliminação de inconsistências Como a informação está armazenada em um único local, compartilhada por vários sistemas, e é atualizada por apenas uma fonte, os usuários utilizam informações mais confiáveis.

17 17 Compartilhamento de Dados Permite que mais de uma aplicação ou usuário, independentemente da operação que esteja pelo gestor da informação, tenha acesso aos dados simultaneamente e de uma forma mais segura. O compartilhamento também diminui os custos quando da implementação de novas aplicações ou sistemas. Restrição de Segurança permite definir perfis de autorização dos dados, a partir de níveis de acesso definidos pelo gestor da informação, impedindo que pessoas não autorizadas utilizem ou atualizem determinada informação. Reforço de Padrões Garante que os dados armazenados sigam um padrão definido pela empresa no que tange a nomenclatura e formato de armazenamento, facilitando a utilização dos dados por vários sistemas. Independência dos Dados O armazenamento dos dados é facilitado por possuir definições diferentes para cada tabela do banco. Integridade dos Dados Permite que a integridade de dados seja mantida por regras predefinidas, impendido que uma chave de uma tabela não tenha correspondência em outra. Restauração dos dados possibilita um controle da restauração dos dados em caso de falha de ambiente ou de um aplicativo, mantendo a integridade dos dados. Reorganização dos dados permite que os dados sejam reorganizados de forma a eliminar espaços inutilizados, dimensionando as tabelas e, por conseqüência, melhorando a performance de acesso. Relacionamentos ocorre a implementação de relacionamentos complexos entre os dados.

18 CLASSIFICAÇÃO DOS SGBDs A literatura classifica os SGBDs como HIERÁRQUICO, REDE e RELACIONAL. Essa classificação representa a evolução desses produtos no curso da história. Atualmente, o mercado é dominado pelos SGBDs RELACIONAIS e caminha para a colocação em escala comercial dos SGBD ORIENTADOS A OBJETOS Modelo Hierárquico O modelo de banco de dados hierárquico é descrito por um diagrama de estrutura e árvore, com dois componentes básicos: as caixas correspondentes aos tipos de registro e as linhas que representam as ligações entre os tipos de registro. O modelo hierárquico pode ser representado diretamente quando os dados são definidos com relacionamentos hierárquicos, isto é, um segmento raiz, localizado no topo da estrutura, que se relaciona com outros segmentos de cima para baixo, da esquerda para a direita, denominado de diagrama de estrutura de dados ou de árvore (relacionamento do topo para baixo e das folhas para dentro). O segmento raiz, também denominado pai ou ascendente, pode ter vários filhos ou descendentes, mas os filhos só podem ter um pai, descrevendo ligações de l:n (um-para-muitos). Um banco de dados definido pelo controle de alunos de uma escola é naturalmente um modelo de dados hierárquicos. Fig. 02 Diagrama de um modelo hierárquico de banco de dados.

19 19 Assim a forma mais comum de acessar os dados num banco de dados modelo hierárquico é: Acessar o segmento corrente se ele ainda não o foi. Acessar o filho não lido e mais à esquerda. Se não houver mais descendentes, retornar ao pai. Todos os bancos de dados apresentam vantagens e desvantagens em sua utilização, e com o banco de dados modelo hierárquico não é diferente. Ele é um modelo bastante simplificado, representa naturalmente sistemas que possuem uma hierarquia bem definida, não representando sistemas que não possuem tal características, além de aumentar os índices de redundância (duplicidade), possuir tempos de consulta e processamento reconhecidamente altos. A tendência atual desaconselha a atualização dos bancos de dados hierárquicos e, sim, enfatiza a utilização de outros modelos de bancos de dados, tendo como principal motivo o fato de que esse tipo de banco de dados se direciona a registros, fazendo com que todo acesso à base de dados seja realizado registro a registro Modelo Rede O modelo de rede pode ser visto como uma expansão mais completa do modelo hierárquico, apenas livre das dificuldades encontradas no modelo anterior. Os controles existentes quanto aos recursos de armazenamento, estrutura e caminhos utilizados para navegar de um registro a outro tornam o modelo de rede mais completo. O banco de dados em rede é composto de uma estrutura mais completa, possui as propriedades básicas de registros, conjuntos e ocorrências, e utiliza a linguagem de definição de banco de dados (DDL) e a linguagem de manipulação de dados (DML), além de permitir uma evolução mais eficiente do modelo.

20 20 A estrutura é formada de entidade (registros), atributos (itens de dados), tipo de registro e ocorrências do registro. No modelo de rede não é permitida a utilização de relacionamentos hierárquicos. Tanto no modelo hierárquico quanto o de rede são chamados de navegação, pois as aplicações devem ser construídas para atravessar um conjunto de registros interligados previamente. A maior vantagem do modelo de rede frente ao hierárquico é um melhor controle sobre a redundância de dados Modelo Relacional O banco de dados mais utilizado atualmente é o banco de dados relacional, principalmente pelas suas fortes características de segurança, compartilhamento e integridade dos dados, fatores primordiais para uma administração eficaz da informação de qualquer empresa. Como o próprio nome diz, esse tipo de banco de dados é composto de relações entre entidade, denominadas tabelas, seguindo o mesmo conceito matemático de relação. As tabelas se relacionam por meio de chaves, que podem ser simples, formadas por apenas um atributo, ou compostas, formadas por vários atributos. Por atributo compreende-se a representação de um tipo de informação. As tabelas de maior hierarquia são denominadas tabelas-pai, que interagem com tabelas-filha numa relação de dependência. Para os registros contidos na tabela-pai, não é obrigatório a existência de filhos, mas os filhos só se justificam com existência de registros na tabela-pai. Para que um modelo seja considerado relacional, os dados devem ser armazenadas em tabelas, nenhum ponteiro ou ligação deve ser visível ao usuário, a linguagem de consulta deve ser relacionalmente completa e as consultas podem ser expressas sem uso de iterações ou recursões.

21 21 Alguns exemplos de banco de dados relacionais: Fig. 03 exemplos de SGBDs relacionais. DADOS fatos que podem ser armazenados. Ex: nomes, telefones, endereços. BASE DE DADOS coleção de dados inter-relacionados logicamente. Ex: agenda de telefones. Tenha em Mente INFORMAÇÃO dados compilados e processados de acordo com a necessidade do ser humano. Ex: saber o número de telefone do João. Sistema de Gerência de Base de Dados (SGBD) coleção de programas que permite a criação de bases de dados ou sistemas de banco de dados.

22 MODELAGEM DE BANCO DE DADOS Toda a realidade é sempre, em princípio, bastante nebulosa e informal. Através da observação podemos extrair dela (realidade) fatos que nos levam a conhecê-la de uma forma mais organizada. Em um negocio, existem fatos que, observados e modelados, dizem algo a respeito do funcionamento deste negócio. Estes fatos estão ligados diretamente ao funcionamento da realidade, os quais temos grandes interesse em compreender e manter. Para que possamos retratar estes fatos e que os mesmos possam nos levar a futuras decisões e ações, se faz necessário então registrá-los. Este registro é feito através da criação de um modelo. O que se quer criar é uma abstração (fig. 04) da realidade, que seja capaz de registrar os acontecimentos da mesma, de tal forma que se possa implementar um sistema automatizado que atenda as reais necessidades da informação. Fig. 04 Níveis de Abstração.

23 Descrição dos Elementos da Abstração Mini-mundo porção da realidade, captada pelo analista, a qual a função gerencial tem forte interesse em observar. A complexidade de se analisar até mesmo um mini-mundo, pode levar o analista a subdividi-lo em partes menores, às quais damos o nome de visão. Banco de Dados é uma coleção de fatos registrados que refletem o estado de certos aspectos de interesse do mundo real. A todo o momento do conteúdo do banco de dados representa uma visão instantânea do estado do mundo real. Cada mudança em algum item do banco de dados reflete uma mudança ocorrida na realidade. MODELO CONCEITUAL - É uma descrição do banco de dados de forma independente de implementação em um SGBD. O modelo conceitual registra que dados podem aparecer no banco de dados, mas não registra como estes dados estão armazenados a nível de SGBD. Quando se fala em Modelo Conceitual, estamos nos referindo a primeira etapa do projeto de um sistema de aplicação em banco de dados. O objetivo do Modelo Conceitual é descrever as informações contidas em uma realidade, as quais irão estar armazenadas em um banco de dados. É uma descrição da realidade em alto nível (macrodefinição), mas que tem a preocupação de captar e retratar toda a realidade de uma organização, setor, repartição, departamento, etc. Fig. 05 Modelagem conceitual.

24 24 A técnica de modelagem conceitual mais difundida é a abordagem entidade relacionamento (ER). Nesta técnica, um modelo conceitual é usualmente representado através de um diagrama, chamado diagrama entidaderelacionamento (DER). MODELO LÓGICO - O Modelo Lógico tem seu início a partir do Modelo Conceitual, levando em consideração uma das três abordagens atualmente possíveis: Relacional, Hierárquico e Rede. Um modelo lógico é uma descrição de um banco de dados no nível de abstração visto pelo usuário do SGBD. Assim, o modelo lógico é dependente do tipo de SGBD que está sendo usado. MODELO LÓGICO = MODELO DE DADOS QUE REPRESENTA A ESTRUTURA DE DADOS DE UM BANCO DE DADOS CONFORME VISTA PELO USUÁRIO DO SGBD. HEUSER, O Modelo Lógico descreve as estruturas que estarão contidas no banco de dados, de acordo com as possibilidades permitidas pela abordagem, mas sem considerar, ainda, nenhuma característica específica de um Sistema Gerenciador de Banco de Dados (SGBD), resultando em um esquema lógico de dados sob a ótica de uma das abordagens citadas. Em um SGBD relacional, os dados estão organizados na forma de tabelas. Um modelo lógico de um BD relacional deve definir quais as tabelas que o banco contém e, para cada tabela, quais os nomes das colunas.

25 25 Ex: TipoDeProduto (CodTipoProd, DescrTipoProd) Produto (CodProd, DescrProd, PrecoProd, CodTipoProd) CodTipoProd referencia TipoDeProduto Modelo Físico - O Modelo Físico irá partir do Modelo Lógico e descreve as estruturas físicas de armazenamento de dados, como: tamanho de campos, índices, tipo de preenchimento destes campos, nomenclaturas, etc., projetadas de acordo com os requisitos de processamento e uso mais econômico dos recursos computacionais. Este modelo detalha o estudo dos métodos de acesso do SGD, para elaboração do índice de cada informação colocada nos Modelos Conceitual e Lógico. Esta é a etapa final do projeto de Banco de Dados, na qual será utilizada a Linguagem de Definição de Dados do SGBD (DDL), para a realização da montagem do mesmo nível do Dicionário de Dados PROJETO DE BANCO DE DADOS O projeto de um banco de dados dá-se em três fases, descritas a seguir: 1. Modelagem conceitual nesta primeira fase, é construído um modelo conceitual. Este modelo captura as necessidades da organização em termos de armazenamento de dados independentes de implementação. 2. Projeto lógico a etapa de projeto lógico objetiva transformar o modelo conceitual obtido na primeira fase em um modelo lógico. O modelo lógico define como o banco de dados será implementado em um SGBD especifico.

26 26 3. Projeto físico na etapa física de projeto físico, o modelo do banco de dados é enriquecido com detalhes que influenciam no desempenho do banco de dados, mas não interferem em sua funcionalidade. ATIVIDADES DO CAPÍTULO 1. Faça a correspondência entre as colunas da esquerda e da direita: a) Dados 1) Software responsável pela definição, manipulação, controle e armazenamento de informações relacionadas, controlando a segurança, a consistência e a integridade de dados. b) Informação 2) Obtidas de forma positiva, de forma tempestiva, restrita, sem redundância e principalmente integra. c) Arquivos tradicionais 3) Banco de dados dispostos numa ordem determinada por esquema ou modelo d) Informações atuais 4) Uma coleção de informações selecionadas entre si, referentes a um mesmo assunto e organizadas de maneira útil, com o propósito de servir de base para que o usuário recupere informações, tire conclusões e tome decisões. e) Banco de dados 5) Conjunto de símbolos arrumados de tal forma a representar uma informação. f) Características dos bancos de dados g) Sistema gerenciador de banco de dados 6) Manutenção dos dados organizados, consistência, integridade, acessos múltiplos, recuperação em caso de falha e tempestividade de acesso. 7) Administração lenta, arcaica, desorganizada e de difícil manutenção. h) Lista telefônica 8) Dado ao qual se agrega valor, tornando-se um dos bens mais preciosos da empresa. 2. Quanto ao tipo de armazenamento dos dados, podemos afirmar:

27 27 a) A utilização de um SGBD nem sempre é aconselhável, pois pode significar um aumento desnecessário nos custos e investimentos da empresa. b) A aquisição de hardware e software adicionais, sobrecarga nos controles de segurança, concorrência, recuperação e integração de funções são características facilitadoras da utilização de um SGBD. c) Os pontos fortes que determinam a utilização de arquivos tradicionais para o armazenamento dos dados são: o controle de redundância, de acesso e integridade. d) Qualquer banco de dados pode ser administrado sem a utilização de um software especifico. e) O modelo de dados relacional é descrito por um diagrama de estrutura de arvore, composto de registros e linhas. 3. Assinale a alternativa correta: a) O modelo de dados hierárquico possui um segmento raiz, localizado no topo da estrutura, que se relaciona com outros segmentos de baixo para cima, da esquerda para a direita, denominado de diagrama de estrutura de dados. b) O modelo de rede é composto por uma estrutura mais complexa que o modelo hierárquico. Com propriedades básicas de registro, conjuntos e ocorrência, utiliza a linguagem de definição de banco de dados e a linguagem de manipulação de dados. c) A implementação do modelo de dados hierárquicos se tornou possível quando a estrutura de armazenamento nos discos se tornou endereçável. d) O acesso ao banco de dados hierárquico é o algoritmo de ordenação: acessar o seguimento corrente, acessar o filho não lido e mais à esquerda, retornar ao pai se não houver ocorrências. 1) As opções a, b e c são verdadeiras. 2) As opções b e c são falsas. 3) Todas são verdadeiras. 4) As opções b, c e d são falsas. 5) As opções b, c e d são verdadeiras.

28 28 4. Completa as lacunas com um dos itens entre parênteses: a) Sistema gerenciador de banco de dados classificado por numero de usuários: (relacional; monousuário). b) Armazenamento de dados com o mesmo conteúdo: (redundância; independência). c) Define perfis de utilização dos dados a partir de níveis de acesso definido pelo gestor: (integridade; restrição). d) O armazenamento dos dados é facilitado por possuir definições diferentes para cada tabela do banco de dados: (integridade; independência). 5. Assinale as características da linguagem de manipulação de dados: a) Modifica as estruturas do banco de dados. b) Insere novas informações no banco de dados. c) Modifica os dados armazenados no banco de dados. d) Altera tabelas, visões e índices. e) Recupera informações armazenadas no banco de dados. f) Implementa os níveis de acesso e privilégios garantindo a segurança.

29 29 RESPOSTAS DOS EXERCÍCIOS 1) g-1; d-2; h-3; e-4;a-5; f-6; c-7; b-8 2) a 3) 3 4) monosuário, redundância, restrição, independência. 5) b, c, e

30 Abordagem Entidade- Relacionamento Capítulo 2 Meta Geral Apresentar ao aluno os conceitos centrais da abordagem ER, acompanhados de uma notação gráfica para os respectivos diagramas. Ao final deste capítulo, você deverá ser capaz de: Objetivos 1. Ver como um Diagrama ER é composto. 2. Entender os principais conceitos envolvidos na construção de um Diagrama ER. 3. Realizar a modelagem conceitual de um banco de dados através da técnica de abordagem entidaderelacionamento.

31 31 Como vimos, a primeira etapa do projeto de um banco de dados é a construção de um modelo conceitual, a chamada modelagem conceitual. O objetivo da modelagem conceitual é obter uma descrição abstrata, independente da implementação em computador, dos dados que serão armazenados no banco de dados. A técnica de modelagem de dados mais difundida e utilizada é a abordagem entidade-relacionamento (ER). Nesta técnica, o modelo de dados é representado através de um modelo entidade-relacionamento (modelo ER) e o modelo ER é representado graficamente através de um diagrama entidade-relacionamento (DER). A abordagem ER foi criada em 1976 por Peter Chen, podendo ser considerada como um padrão de fato para a modelagem conceitual. Mesmo as técnicas de modelagem orientada a objetos, que têm surgido nos últimos anos, como a UML, baseiam-se nos conceitos da abordagem ER ENTIDADE O conceito fundamental da abordagem ER é o conceito de entidade. ENTIDADE = CONJUNTO DE OBJETOS DA REALIDADE MODELADA SOBRE OS QUAIS DESEJA-SE MANTER INFORMAÇÕES NO BANCO DE DADOS. HEUSER, Num sistema gerenciador de uma indústria, alguns exemplos de entidades poderiam ser os produtos, vendas ou as compras, etc. Para um sistema de contas correntes, algumas entidades podem ser os clientes, as contas correntes, os cheques, etc. Uma entidade pode representar tanto objetos concretos da realidade (uma pessoa, um automóvel, etc) quanto objetos abstratos (um departamento, um endereço, etc)

32 32 Em um DER, uma entidade é representada através de um retângulo que contém o nome da entidade. Veja os exemplos abaixo: Fig. 01 representação gráfica de uma entidade. Cada retângulo, ou seja, cada entidade representa um conjunto de objetos sobre os quais deseja-se guardar informações. Assim, no exemplo acima, o primeiro retângulo designa o conjunto de todas as pessoas sobre as quais se deseja manter informações no banco de dados, enquanto o segundo retângulo designa o conjunto de todos os departamentos de uma empresa sobre os quais desejamos manter informações no banco de dados. Caso seja necessário referir um objeto particular (uma determinada pessoa ou um determinado departamento), nos o chamamos de ocorrência de entidade. Da forma como está apresentado, o modelo indica apenas quais os conjuntos de objetos sobre os quais deseja-se manter informações, mas não quais as informações que devem ser mantidas para cada objeto. Estas informações são definidas pelas propriedades das entidades, dadas pelos relacionamentos, atributos e generalizações/especializações RELACIONAMENTO RELACIONAMENTO = CONJUNTO DE ASSOCIAÇÕES ENTRE OCORRÊNCIAS DE ENTIDADES. HEUSER, Exemplificando, pode ser desejável saber quais pessoas estão associadas a quais departamentos em uma organização. A propriedade de entidade que especifica as associações entre objetos é o relacionamento.

33 33 Em um DER, um relacionamento é representado através de um losango, ligando por linhas aos retângulos representativos das entidades que participam do relacionamento. A figura abaixo representa um DER contendo duas entidades, PESSOA e DEPARTAMENTO, e um relacionamento, LOTAÇÃO. Fig. 02 Este modelo expressa que o BD mantém informações sobre: um conjunto de objetos classificados como pessoas (entidade PESSOA) um conjunto de objetos classificados como departamentos (entidade DEPARTAMENTO) um conjuntos de associações, que ligam um departamento a uma pessoa (relacionamento LOTAÇÃO) Assim como em entidades, quando quisermos nos referir a associações particulares dentro de um conjunto, vamos nos referir a ocorrências de relacionamentos. No caso do relacionamento LOTAÇÃO uma ocorrência seria um par específico formado por uma determinada ocorrência da entidade PESSOA e por uma determinada ocorrência da entidade DEPARTAMENTO.

34 34 Para exemplificar, vamos construir um diagrama de ocorrências, apresentado na figura 03. Este diagrama refere-se ao modelo ER da Figura 02. Fig. 03 Em um diagrama de ocorrências, ocorrências de entidades são representadas por círculos brancos e ocorrências de relacionamentos por círculos negros. As ocorrências de entidades participantes de uma ocorrência de relacionamento são indicadas pelas linhas que ligam o círculo negro representativo da ocorrência de relacionamento aos círculos brancos representativos das ocorrências de entidades relacionadas. Assim, a Figura 03 representa que entre outras, há uma ocorrência de LOTAÇÃO que liga a pessoa p1 com o departamento d1. Não necessariamente um relacionamento associa entidades diferentes. A figura mostra um DER que contém um auto-relacionamento, isto é, um relacionamento entre ocorrências de uma mesma entidade. Neste caso, é necessário um conceito adicional, o de papel da entidade no relacionamento. Papel de entidade em relacionamento = função que uma instância da entidade cumpre dentro de uma instância do relacionamento.

35 35 No caso do relacionamento de um casamento, uma ocorrência de pessoa exerce o papel de marido e a outra ocorrência de pessoa exerce o papel de esposa. Papéis são anotados no DER como mostrado na Figura 04. No caso de relacionamentos entre entidades diferentes, como o de LOTAÇÃO mostrado acima, não é necessário indicar os papéis das entidades, já que eles são óbvios. Fig. 04 Veja também, como ficaria o diagrama de ocorrências para um relacionamento do tipo auto-relacionamento, como é o caso do DER Casamento: Fig. 05

36 CARDINALIDADE DE RELACIONAMENTO Uma propriedade importante de um relacionamento é a de quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência através do relacionamento. Esta propriedade é chamada de cardinalidade de uma entidade em um relacionamento. Há duas cardinalidades a considerar: a cardinalidade máxima e a cardinalidade mínima. CARDINALIDADE (MÍNIMA, MÁXIMA) DE ENTIDADE EM RELACIONAMENTO = NÚMERO (MÍNIMO, MÁXIMO) DE OCORRÊNCIAS DE ENTIDADES ASSOCIADAS A UMA OCORRÊNCIA DA ENTIDADE EM QUESTÃO ATRAVÉS DO RELACIONAMENTO. HEUSER, Cardinalidade Máxima Para exemplificar o conceito de cardinalidade vamos retomar o exemplo da Figura 02. Vamos considerar as seguintes cardinalidade máximas: Entidade EMPREGADO tem cardinalidade máxima 1 no relacionamento LOTAÇÃO: Isso significa que uma ocorrência de EMPREGADO pode estar associada a no máximo uma ocorrência de DEPARTAMENTO, ou em outros termos, que um empregado pode estar lotado em no máximo um departamento.

37 37 Entidade DEPARTAMENTO tem cardinalidade máxima 120 no relacionamento LOTAÇÃO: Isso significa que uma ocorrência de DEPARTAMENTO pode estar associada à no máximo 120 ocorrências de EMPREGADO, ou em outros termos, que um departamento pode ter nele lotado no máximo 120 empregados. Em um DER, a cardinalidade máxima é representada conforme indicado na figura 06. Observe a convenção usada, a cardinalidade máxima da entidade EMPREGADO no relacionamento LOTAÇÃO é anotada junto ao símbolo da entidade DEPARTAMENTO. Fig. 06 Para fins práticos, não é necessário distinguir entre diferentes cardinalidades máximas maiores que 1. Por este motivo, apenas duas cardinalidades máximas são relevantes: a cardinalidade máxima 1 e a cardinalidade máxima muitos, referida pela letra n. Assim, no exemplo acima, diz-se que a cardinalidade máxima da entidade DEPARTAMENTO no relacionamento LOTAÇÃO é n.

38 38 Relacionamento Binários A cardinalidade máxima pode ser usada para classificar relacionamentos binários. Um relacionamento binário é aquele cujas ocorrências contêm duas ocorrências de entidade, como todos os exemplos vistos até aqui. Podemos classificar os relacionamentos em n:n (muitos-para-muitos), 1:n (umpara-muitos) e 1:1 (um-para-um). Veja exemplos abaixo: Na Figura 07, no relacionamento CASAMENTO, as cardinalidades máximas expressam que uma pessoa pode possuir no máximo um marido e que uma pessoa pode possuir no máximo uma esposa. Mas precisamente, as cardinalidades expressam que uma instância pode estar associada via relacionamento a no máximo uma instância de pessoa no papel de esposa e viceversa, uma instância de pessoa pode estar associada via relacionamento a no máximo uma instância de pessoa no papel de marido. Fig. 07 Observe que este relacionamento CASAMENTO, apesar de envolver apenas uma entidade, é também considerado como um relacionamento binário. O que determina o fato de o relacionamento ser binário é o número de ocorrências de entidade que participam de cada ocorrência do relacionamento.

39 39 De cada ocorrência de CASAMENTO participam exatamente duas ocorrências da entidade PESSOA (um marido e uma esposa). Por este motivo, o relacionamento de CASAMENTO é classificado como sendo binário. O relacionamento INSCRIÇÃO modela a inscrição de alunos em uma universidade pública, onde existe a restrição de que um aluno pode estar inscrito em no máximo um curso. Fig. 08 O tipo menos restrito de relacionamento é o de cardinalidade n:n, veja alguns exemplos abaixo: Fig. 09 exemplos de relacionamentos cardinalidade n:n

40 40 Relacinamento Ternário Todos exemplos até aqui mostrados são de relacionamentos binários, ou seja, de relacionamentos que associam exatamente duas entidades. A abordagem ER permite que sejam definidos relacionamentos de grau maior do que dois (relacionamentos ternários, quaternários, ). O DER da Figura 10 mostra um exemplo de um relacionamento ternário. Cada ocorrência do relacionamento DISTRIBUIÇÃO associa três ocorrências de entidade: um produto a ser distribuído, uma cidade na qual é feita a distribuição e um distribuidor. Fig. 10 No caso de relacionamentos de grau maior que dois, o conceito de cardinalidade de relacionamento é uma extensão não trivial do conceito de cardinalidade em relacionamentos binários. Lembre-se que, em um relacionamento binário R entre duas entidades A e B, a cardinalidade máxima de A em R indica quantas ocorrências de B podem estar associadas a cada ocorrência de A. No caso de um relacionamento ternário, a cardinalidade refere-se a pares de entidades. Em um relacionamento R entre três entidades A, B e C, a cardinalidade máxima de A e B dentro de R indica quantas ocorrências de C podem estar associadas a um par de ocorrências de A e B.

41 41 Fig. 11 cardinalidade em relacionamento ternários. Exemplificando, na Figura 11, o 1 na linha que liga o retângulo representativo da entidade DISTRIBUIDOR ao losango representativo do relacionamento expressa que cada par de ocorrências (cidade, produto) está associado a no máximo um distribuidor. Em outros termos, não há concorrência pela distribuição de um produto em uma cidade. Já os dois n expressam que: A um par (cidade, distribuidor) podem estar associados muitos produtos, ou em outros termos, um distribuidor pode distribuir em uma cidade muitos produtos. A um par (produto, distribuidor) podem estar associadas muitas cidades, ou em outros termos um distribuidor pode distribuir um produto em muitas cidades.

42 Cardinalidade Mínima Além da cardinalidade máxima, uma outra informação que pode ser representada por um modelo ER é o número mínimo de ocorrências de entidade que são associadas a uma ocorrência de uma entidade através de um relacionamento. Para fins de projeto de BD, consideram-se apenas duas cardinalidades mínimas: a cardinalidade mínima 0 e a cardinalidade mínima 1. A cardinalidade mínima 1 também recebe a denominação de associação obrigatória, já que ela indica que o relacionamento deve obrigatoriamente associar uma ocorrência de entidade a cada ocorrência da entidade em questão. Com base na mesma linha de raciocínio, a cardinalidade mínima 0 também recebe a denominação de associação opcional. A cardinalidade mínima é anotada no diagrama junto a cardinalidade máxima, conforme mostrado na Figura 12. Nesta figura, aparece um exemplo da alocação de empregados a mesas de escritório. Aqui, a cardinalidade mínima é usada para especificar que cada empregado deve ter a ele alocada obrigatoriamente uma mesa (cardinalidade mínima 1) e que uma mesa pode existir sem que a ela esteja alocado um empregado (cardinalidade mínima 0). Fig. 12

43 ESTUDO DE CASO SOBRE ENTIDADES E RELACIONAMENTOS Observe o modelo ER abaixo: Fig. 13 modelo ER de uma Universidade. O modelo descreve o seguinte: Deseja-se manter informações sobre alunos, cursos, disciplinas e departamentos (entidades). Além disso, deseja-se manter informações sobre a associação de alunos a cursos, de disciplinas a cursos, de disciplinas a departamentos, bem como de disciplinas a suas disciplinas pré-requisitos. Através das cardinalidades expressa-se que: Cada disciplina possui exatamente um departamento responsável, e um departamento é responsável por muitas disciplinas, inclusive por nenhuma. Note-se que, apesar de sabermos que os departamentos em uma universidade existem para ser responsáveis por disciplinas, especificamos a cardinalidade mínima de DEPARTAMENTO em RESPONSÁVEL como sendo 0. Com isso admitimos a possibilidade de existirem departamentos vazios. Esta cardinalidade foi especificada considerando o estado do banco de dados imediatamente após a criação de um novo departamento, bem como o

44 44 estado imediatamente antes da eliminação de um departamento. Da forma como a restrição foi especificada, é possível incluir o departamento em uma transação, para, depois, em transações subseqüentes, vinculá-lo às disciplinas sob sua responsabilidade. Se tivesse sido especificada a cardinalidade mínima 1, obrigatoriamente pelo menos uma disciplina teria que ser vinculada ao departamento já na própria transação de inclusão do departamento. Uma disciplina pode possuir diversos pré-requisitos, inclusive nenhum. Uma disciplina pode ser pré-requisito de muitas outras disciplinas, inclusive de nenhuma. Uma disciplina pode aparecer no currículo de muitos cursos (inclusive de nenhum) e um curso pode possuir muitas disciplinas em seu currículo (inclusive nenhuma). Um aluno está inscrito em exatamente um curso e um curso pode ter nele inscritos muitos alunos (inclusive nenhum).

45 ATRIBUTO O modelo ER permite a especificação de propriedades de entidades. Uma propriedade é participar de um relacionamento. Outra propriedade é ter um atributo. ATRIBUTO = DADO QUE É ASSOCIADO A CADA OCORRÊNCIA DE UMA ENTIDADE OU DE UM RELACIONAMENTO. HEUSER, O conceito de atributo serve para associar informações a ocorrências de entidades ou de relacionamentos. Atributos são representados graficamente conforme mostra a figura abaixo: a cada ocorrência de PROJETO tem associado exatamente um nome, um código e um tipo. Fig. 14 representação gráfica de atributos. Na prática, atributos não são representados graficamente, para não sobrecarregar os diagramas, já que muitas vezes entidades possuem um grande número de atributos. Prefere-se usar uma representação textual que aparece separadamente do diagrama ER.

46 46 Um atributo pode possuir uma cardinalidade de maneira análoga a uma entidade em um relacionamento. A cardinalidade de um atributo define quantos valores deste atributo podem estar associados a uma ocorrência da entidade/relacionamento a qual ele pertence. A representação diagramática da cardinalidade de atributos é derivada da representação da cardinalidade de entidades em relacionamentos, conforme mostra a Figura 15. No caso de a cardinalidade ser (1,1) ela pode ser omitida do diagrama. Fig. 15 representação da cardinalidade de atributos. O exemplo acima expressa que nome e código são atributos obrigatórios (cardinalidade mínima 1 cada entidade possui no mínimo um valor associado) e mono-valorados (cardinalidade máxima 1 cada entidade possui no máximo um valor associado). Já o atributo telefone, é um atributo opcional (cardinalidade mínima 0) e multi-valorado (cardinalidade máxima n). Assim como entidades possuem atributos, também relacionamentos podem possuir atributos. A Figura 16 mostra um DER no qual um relacionamento, ATUAÇÃO, possui um atributo, a função que um engenheiro exerce dentro de um projeto. Esta não pode ser considerada atributo de ENGENHEIRO, já que um engenheiro pode atuar em diversos projetos exercendo diferentes funções. Também, não é atributo de PROJETO, já que, em um projeto, podem atuar diversos engenheiros com funções diferentes.

47 47 Fig. 16 Outro exemplo de atributo em relacionamento, agora em um relacionamento 1:n, é mostrado na Figura 17. Este diagrama modela vendas em uma organização comercial. Algumas vendas são à vista, outras à prazo. Vendas à prazo são relacionadas a uma financeira, através do relacionamento FINANCIAMENTO. Os atributos nº de parcelas e taxa de juros são atributos do relacionamento. Fig. 17 Estes dois atributos poderiam ter sido incluídos na entidade VENDA. Neste caso, seriam atributos opcionais, já que nem toda venda é à prazo e possui estes atributos. Assim, preferiu-se usar o modelo da figura, exatamente para explicitar o fato de os atributos nº de parcelas e taxa de juros pertencerem somente a vendas à prazo.

48 IDENTIFICADORES Cada entidade deve possuir um identificador. IDENTIFICADOR DE ENTIDADE = CONJUNTO DE UM OU MAIS ATRIBUTOS E RELACIONAMENTOS CUJOS VALORES SERVEM PARA DISTINGUIR UMA OCORRÊNCIA DA ENTIDADE DAS DEMAIS OCORRÊNCIAS DA MESMA ENTIDADE. HEUSER, O caso mais simples é o da entidade que possui um único atributo como identificador. No DER, atributos identificadores são representados por um círculo preto. No exemplo da Figura 18, o atributo código é identificador. Isso significa que cada pessoa possui um código diferente, que não se repetirá. Já os atributos nome e endereço não são identificadores o mesmo nome (ou o mesmo endereço) pode ser associados a diferentes pessoas. Fig. 18 Em alguns casos, como o da figura abaixo, o identificador da entidade é composto por mais de um atributo. Este identificador é chamado de Composto. Exemplo: Considera-se um almoxarifado de uma empresa de ferragens organizado como segue. Os produtos ficam armazenados em prateleiras. Estas prateleiras encontram-se em armários organizados em corredores. Os corredores são numerados seqüencialmente a partir de um, dentro de um corredor. Assim, para identificar uma prateleira é necessário conhecer seu número e o número do corredor em que se encontra. Para cada prateleira deseja-se saber sua capacidade em metros cúbicos.

49 49 Fig. 19 identificar composto: nº do corredor / nº da prateleira. Finalmente, há casos em que o identificador de uma entidade é composto não somente por atributos da própria entidade, mas também por relacionamentos dos quais a entidade participa (relacionamento identificador). Um exemplo deste caso é mostrado na figura abaixo. Fig. 20 Este modelo envolve empregados de uma organização, relacionados com os seus dependentes para fins de imposto de renda. Cada dependente está relacionado a exatamente um empregado. Um dependente é identificado pelo EMPREGADO ao qual ele está relacionado e por um NÚMERO DE SEQÜÊNCIA que distingue os diferentes dependentes de um mesmo empregado. No DER, o relacionamento usado como identificador é indicado por uma linha mais densa, conforme mostra a figura 20. Nesse caso, alguns autores dizem que a entidade DEPENDENTE é uma entidade fraca. O termo fraca deriva do fato de a entidade somente existir quando relacionada a outra entidade e de usar, como parte de seu identificador, entidades relacionadas. Entretanto, os autores de livros mais recentes preferem não utilizar o conceito, já que ser fraca não é uma propriedade de uma entidade, mas sim de uma entidade em um relacionamento, visto que uma entidade pode ser fraca em um relacionamento e forte em outro.

50 50 Outro exemplo de relacionamento identificador é mostrado na figura 21, que contém um fragmento de um DER sobre empresas. No exemplo, é representada a divisão de grupos de empresas em empresas e de empresas em filiais de empresas. Para identificar um grupo de empresas é usado um código. Já uma empresa é identificada pelo GRUPO ao qual está relacionada e por um NÚMERO DA EMPRESA dentro do grupo. Finalmente, uma filial é identificada pela EMPRESA a qual está vinculada e por um NÚMERO DA FILIAL dentro da empresa. Fig. 21 exemplo de relacionamento identificador. O identificador de uma entidade, seja ele simples, composto por diversos atributos, ou composto por identificadores externos, deve obedecer a duas propriedades: O identificador deve ser mínimo. Isso significa que o identificador de uma entidade deve ser composto de tal forma que, retirando um dos atributos ou relacionamentos que o compões, ele deixa de ser identificador. Exemplificando, na entidade PESSOA na figura 18, o par código e nome poderia ser usado para distinguir uma ocorrência de PESSOA das demais.

51 51 Entretanto, estes atributos não formam um identificador mínimo, já que código é suficiente para distinguir as ocorrências de PESSOA. Para fins de projeto de BD relacional, cada entidade deve possuir um único identificador. Em alguns casos, diferentes conjuntos de atributos podem servir para distinguir as ocorrências da entidade. Exemplificando, a entidade EMPREGADO, da figura 22, poderia possuir como identificador tanto o atributo código, quanto o atributo CPF (identificador único do contribuinte junto à Receita Federal). Cabe ao moderador decidir qual dos dois atributos será usado como identificador da entidade. Fig. 22 Há casos nos quais entre as mesmas ocorrências de entidade podem existir diversas ocorrências de relacionamento. Um exemplo é o relacionamento CONSULTA entre entidades MÉDICO e PACIENTE (fig. 23). Fig. 23 Veja como funciona: Para um determinado médico e um determinado paciente pode haver diversas consultas (n:n). Neste caso, é necessário algo que distinga uma consulta entre um médico e seu paciente das demais consultas entre este mesmo médico e este mesmo paciente. A diferenciação poderá ser através de atributos identificadores de relacionamento. No caso do

52 52 relacionamento CONSULTA, o atributo identificador do relacionamento pode ser data/hora. Assim saberemos que apenas uma consulta entre o médico e seu paciente ocorreu no mesmo dia e na mesma hora GENERALIZAÇÃO / ESPECIALIZAÇÃO Além de relacionamentos e atributos, propriedades podem ser atribuídas a entidades através do conceito de generalização / especialização. A partir deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências (especialização) de uma entidade genérica. No DER, o símbolo para representar generalização / especialização é um triangulo isósceles, conforme mostra a figura 24. A generalização / especialização mostrada nesta figura expressa que a entidade CLIENTE é dividida em dois subconjuntos, as entidades PESSOA FÍSICA e PESSOA JURÍDICA, cada uma com propriedades próprias. Fig. 24 Generalização/Especialização. Associada ao conceito de generalização/especialização está a idéia de herança de propriedades. Herdar propriedades significa que cada ocorrência da entidade especializada possui, além de suas próprias propriedades (atributos, relacionamentos e generalizações/especializações), também as propriedades da ocorrência da entidade genérica correspondente. Assim, no exemplo acima, a entidade PESSOA FÍSICA possui, alem de seus atributos particulares (CPF, sexo),

53 53 também todas as propriedades da ocorrência da entidade CLIENTE correspondente, ou seja, os atributos nome e código, bem como o relacionamento com a entidade FILIAL. Resumindo, o diagrama expressa que toda pessoa física tem como atributos nome, código, CPF, sexo, é identificada pelo código e está obrigatoriamente relacionada a exatamente uma filial. Da mesma maneira, toda pessoa jurídica tem como atributos nome, código, CNPJ e tipo de organização, é identificada pelo código e está obrigatoriamente relacionada a exatamente uma filial.

54 ESQUEMAS GRÁFICOS E TEXTUAIS DE MODELOS ER Vejamos a representação gráfica dos elementos de um DER descritos até agora: Fig. 25 símbolos usados na construção de esquemas ER. Uma representação de um modelo é chamada de esquema do banco de dados. Além da representação gráfica, utilizando os símbolos da figura 25, um esquema ER pode ter uma representação textual. Nesta sintaxe, são usadas as seguintes convenções: colchetes denotam opcionalidade, chaves denotam repetição, o sufixo LISTA denota uma seqüência de elementos separados por vírgulas e o sufixo NOME denota identificadores.

55 55 Veja abaixo: Fig. 26 representação gráfica e textual de um DER.

56 56 ATIVIDADES DO CAPÍTULO 1) A figura abaixo apresenta um relacionamento que associa um produto de uma indústria com seus componentes. Cada produto pode possuir diversos componentes e cada componente pode aparecer dentro de diversos produtos. Assim trata-se de um relacionamento do tipo n:n. Uma restrição que deve ser imposta sobre o banco de dados em questão é a de que um produto não pode aparecer na lista de seus componentes. Pergunta-se: a) O modelo apresentado na figura contém esta restrição? b) Caso negativo, é possível alterar o modelo em questão para incluir esta restrição, se considerarmos que o nível de profundidade da hierarquia de composição de cada produto não excede três (tem-se apenas produtos prontos, produtos semi-acabados e matérias-primas)? Caso afirmativo, apresente a solução. c) É possível estender a solução do quesito anterior para uma hierarquia não limitada de níveis de composição? 2) Deseja-se modelar os clientes de uma organização. Cada cliente possui um identificador, um nome, um endereço e um país. Discuta os prós e contras das duas alternativas de modelagem de país: a) Como atributo da entidade cliente b) Como entidade relacionada a cliente

57 57 3) A figura abaixo apresenta uma entidade e respectivos atributos, muitos deles opcionais e um multivalorado. Considere que há dois tipos de clientes, pessoas físicas e pessoas jurídicas. Pessoas físicas possuem código, CIC, nome, sexo (opcional), data de nascimento (opcional) e telefones (opcionais). Pessoas jurídicas possuem código, CGC, razão social e telefones (opcionais). Apresente um diagrama ER que modele mais precisamente esta realidade. 4) Construa um diagrama ER (apenas entidades e relacionamentos com cardinalidades máximas) para a administradora de imóveis descrita abaixo. A administradora trabalha tanto com administração de condomínios, quanto com a administração de aluguéis. Uma entrevista com o gerente da administradora resultou nas seguintes informações: a) A administradora administra condomínios formados por unidades condominiais. b) Cada unidade condominial é de propriedade de uma ou mais pessoas. Uma pessoa pode possuir diversas unidades. c) Cada unidade pode estar alugada para no máximo uma pessoa. Uma pessoa pode alugar diversas unidades. 5) Construa um diagrama ER (apenas entidades, atributos e relacionamentos com cardinalidades mínimas e máximas) para os estudos de caso abaixo: a) Um determinada rede de hotéis possui várias filiais (hotéis) espalhados ao redor do mundo. Sobre um hotel, sabe-se o seu nome, endereço, nome de seu gerente, data de inauguração, e número de empregados. Os hóspedes que hospedam-se nestes hotéis possuem algumas informações armazenadas durante o seu cadastro, como nome, endereço, RG, CPF, data nascimento, fone de contato, profissão, sexo, e estado civil. Sobre a

58 58 hospedagem, deve-se manter também a data de entrada e de saída do hóspede. b) O sistema a ser construído refere-se a um conjunto de empresas da área de Informática. As empresas são formadas por vários departamentos. Sobre os deptos, armazena-se o código, a sala onde fica localizado, e o nome. Um funcionário é lotado a no máximo um departamento, mas um departamento pode ter vários funcionários alocados. Para cada funcionário, é desejável armazenar seu número da carteira de identidade, nome, telefone e categoria funcional. Cada categoria funcional possui um valor de salário em específico. Um departamento é responsável por vários projetos; um projeto tem somente um departamento como responsável; cada projeto possui uma descrição e uma data de início da realização do projeto. Recursos são alocados a projetos. Recursos possuem um código identificador e uma descrição. As empresas possuem um CNPJ, o nome de seu diretor (obrigatoriamente é um funcionário da empresa) e o seu endereço. c) Uma pequena locadora de vídeos possui ao redor de fitas de vídeo, cujo empréstimo deve ser controlado. Cada fita possui um número. Para cada filme, é necessário saber seu título e sua categoria (comédia, drama, aventura, ). Cada filme recebe um identificador próprio. Para cada fita é controlado que filme ela contém. Para cada filme há pelo menos uma fita, e cada fita contém somente um filme. Alguns poucos filmes necessitam duas fitas. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, é necessário manter a informação dos atores que estrelam em cada filme. Nem todo filme possui estrelas. Para cada ator os clientes às vezes desejam saber o nome real, bem como a data de nascimento. A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar fitas. Para cada cliente é necessário saber seu prenome e seu sobrenome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. Finalmente, desejamos saber que fitas cada cliente tem emprestadas. Um cliente pode ter várias fitas em um instante no tempo. Não são mantidos registros históricos de aluguéis. d) Um banco de dados para uma universidade deve suportar os seguintes requisitos: para um departamento, deseja-se manter seu número e nome; para um professor, armazenar seu código, nome, endereço, categoria (auxiliar, assistente, adjunto) e o número do departamento ao qual ele pertence; para um aluno, armazenar seu número e nome; Considere que um aluno pode estar em uma das três situações: estar cursando normalmente, estar com a matrícula trancada ou ser um aluno especial. Para um aluno que está cursando normalmente, deseja-se manter

59 59 informações sobre o nome de seu curso e o total de créditos já realizados. Para um aluno com matrícula trancada deseja-se guardar a data de trancamento e o motivo. Para um aluno especial mantém-se sua formação acadêmica, ano de conclusão, escola (todo aluno especial deve ser já formado em algum curso de nível superior; no caso de ser formado em mais do que um curso, somente um deles é armazenado. Sabe-se que: somente os alunos que estão cursando normalmente possuem orientador; todo orientador é também um professor; pode existir professor que não é orientador; de um orientador, deseja-se guardar sua área de atuação; todo aluno especial deve ter um professor responsável por ele. Um professor pode ser responsável por vários alunos especiais. Eventualmente um professor pode ser orientador de um aluno em situação normal e responsável por um aluno especial.

60 60 RESPOSTAS DE ALGUNS EXERCÍCIOS 1. a) O relacionamento apresentado não inclui a restrição de que um produto não pode ser composto por ele mesmo. 1. b) A abaixo apresenta um modelo ER que exclui a possibilidade de um produto ser composto por ele mesmo. Cabe observar que esta solução somente deve ser adotada, caso existam atributos específicos das várias especializações de PRODUTO. Caso não existam atributos específicos para estas especializações, a melhor alternativa seria manter o modelo original, expressando a restrição de integridade em questão fora do modelo. 1.c) Caso deseje-se armazenar no banco de dados uma hierarquia com número não limitado de níveis de composição, fica impossível registrar no modelo o fato de um produto não poder aparecer em sua composição. Essa restrição exige o uso de recursividade em sua expressão, o que não está dentro do poder de expressão de modelos ER.

61 61 3) No modelo, há atributos específicos de pessoa física, outros específicos de pessoa jurídica e alguns comuns a ambos tipos de clientes. Este é o caso típico para a aplicação do conceito de generalização/especialização. A apresenta um modelo para a mesma realidade usando este conceito. O novo modelo é mais preciso que o original. No original, os atributos das entidades especializadas apareciam como opcionais. O modelo não informava que atributos pertenciam a qual tipo de cliente e se o atributo era ou não obrigatório para um tipo de cliente. No novo modelo, fica claro que atributos pertencem a cada uma das especializações e se eles são ou não obrigatórios. 4)

62 5 c) 62

63 Banco de Dados Relacionais Capítulo 3 Meta Geral Apresentar ao aluno uma introdução sucinta ao modelo de dados usados nos SGBDs relacionais. Ao final deste capítulo, você deverá ser capaz de: Objetivos 1. Entender o conceito do modelo relacional; 2. Composição dos bancos de dados relacionais; 3. Realizar operações relacionais por meio da Álgebra Relacional.

64 BANCO DE DADOS RELACIONAIS O modelo relacional foi criado por Codd em 1970 e tem por finalidade representar os dados como uma coleção de relações, onde cada relação é representada por uma tabela, ou falando de uma forma mais direta, um arquivo. Porém, um arquivo é mais restrito que uma tabela. Toda tabela pode ser considerada um arquivo, porém, nem todo arquivo pode ser considerado uma tabela Composição de um Banco de Dados Relacional Um banco de dados relacional é composto de tabelas ou relações. A terminologia tabela é mais comum nos produtos comerciais e na prática. Já a terminologia relação foi utilizada na literatura original sobre a abordagem relacional (daí a denominação relacional ) e é mais comum na área acadêmica. TABELA Uma tabela é um conjunto não ordenado de linhas (tuplas). Um exemplo de tabela (tabela Empregado) é apresentado na figura 01. No exemplo, a tabela armazena dados sobre empregados de uma organização. Cada linha é composta por uma série de campos (valor de atributo). No exemplo, cada linha da tabela corresponde a um empregado e cada campo é uma informação referente a este empregado (seu código, seu nome, etc). Cada campo é identificado por um nome de campo (nome de atributo). Na representação gráfica, os nomes de campo são representados no cabeçalho da tabela. No exemplo, os nomes de campo são CodigoEmp, Nome, CodigoDepto, etc.

65 65 Fig CHAVE O conceito básico para identificar linhas e estabelecer relações entre linhas de tabelas de um banco de dados relacional é o de chave. Em um banco de dados relacional, há ao menos três tipos de chaves a considerar: a chave primária, a chave alternativa e a chave estrangeira. CHAVE PRIMÁRIA Uma chave primária é uma coluna ou uma combinação de colunas, cujos valores distinguem uma linha das demais dentro de uma tabela. Por exemplo, na tabela Empregado da figura 01, a chave primária é a coluna CodigoEmp. Pode ser constituída de um campo (CHAVE SIMPLES) ou pela combinação de dois ou mais campos (CHAVE COMPOSTA), de tal maneira, que não existam dois registros no arquivo com o mesmo valor de chave primária. Em regra, todo arquivo deve possuir uma chave primária, que permita a identificação inequívoca do registro, especialmente, para dar maior consistência aos processos de inclusão, alteração e exclusão de dados. Para que não ocorram duplicatas nos valores da chave, os campos que a compõem são de PREENCHIMENTO OBRIGATÓRIO (NOT NULL).

66 66 A figura 02 apresenta um exemplo de tabela (Dependente) que possui uma chave primária composta (colunas CodEmp e NoDepen). Neste caso, nenhum dos campos que compõem a chave é suficiente para distinguir uma linha das demais já que, tanto um código de empregado (CodEmp) pode aparecer em diferentes linhas, quanto um número de dependente (NoDepen) pode aparecer em diferentes linhas. É necessário considerar ambos os valores para identificar uma linha na tabela, ou seja, identificar um dependente. DEPENDENTE CodEmp NoDepen Nome Tipo DataNasc E1 01 João Filho 12/01/2001 E1 02 Maria Filha 20/10/2003 E2 01 Ana Esposa 12/02/1970 E5 01 Paula Esposa 14/08/1981 E5 02 Jose Filho 03/05/1991 Fig. 02 tabela com chave primária composta Nas definições de chave primária, exige-se que esta seja mínima. Uma chave é mínima quando todas as suas colunas forem efetivamente necessárias para garantir o requisito de unicidade de valores de chave. Exemplificando, alguém poderia considerar a combinação de colunas CodEmp, NoDepen e Tipo como sendo uma chave primária. Entretanto, observamos que ao retirar desta combinação a coluna Tipo, continuamos frente a uma chave primária. Portanto, a combinação de colunas CodEmp, NoDepen e Tipo ao obedece ao principio da minimalidade e não deve ser considerada uma chave primária. CHAVE ESTRANGEIRA Uma chave estrangeira é uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela. A chave estrangeira é o mecanismo que permite a implementação de relacionamentos em um banco de dados relacional.

67 67 DEPT CodigoDepto D1 D2 D3 NomeDepto Compras Engenharia Vendas EMP CodEmp Nome CodigoDepto CategFuncional E1 E2 E3 E5 Souza Santos Silva Soares D1 D2 D3 D4 Fig C5 C5 C2 CPF No banco de dados da figura 03, a coluna CodigoDepto da tabela Emp é uma chave estrangeira com relação a chave primária da tabela Dept. Isto significa que, na tabela Emp, os valores do campo CodigoDepto de todas as linhas devem aparecer na coluna de mesmo nome da tabela Emp. A interpretação desta restrição é que todo empregado deve estar associado a um departamento. A existência de uma chave estrangeira impõe restrições que devem ser garantidas ao executar diversas operações de alteração do banco de dados: Quando da inclusão de uma linha na tabela que contém a chave estrangeira neste caso, deve ser garantido que o valor da chave estrangeira apareça na coluna da chave primária referenciada. No exemplo da fig. 03, isto significa que um novo empregado deve atuar em um departamento já existente no banco de dados. Quando da alteração do valor da chave estrangeira deve ser garantido que o novo valor de uma chave estrangeira apareça na coluna da chave primária referenciada. Deve ser garantido que, na coluna chave estrangeira, não apareça o valor da chave primária que está sendo excluída. No exemplo da fig. 03, isto significa que um departamento não pode ser excluído, caso nele ainda existirem empregados.

68 68 Quando da alteração do valor da chave primária referenciada pela chave estrangeira deve ser garantido que, na coluna chave estrangeira, não apareça o valor antigo da chave primária que está sendo alterada. No exemplo da fig 3, isto significa que, caso um departamento possua empregados, seu código não pode ser modificado. CHAVE ALTERNATIVA Em alguns casos, mais de uma coluna ou combinações de colunas podem servir para distinguir uma linha das demais. Uma das colunas (ou combinação de colunas) é escolhida como chave primária. As demais colunas ou cominações são denominadas chaves alternativas. A fig. 04, mostra um exemplo de uma tabela com dados de empregados (Emp), na qual tanto a coluna CodEmp quanto a coluna CPF podem ser usadas para distinguir uma linha das demais. Nesta tabela, como a coluna CodEmp foi escolhida como chave primária, diz se que coluna CPF é uma chave alternativa. CodEmp Nome CodigoDepto CategFuncional CPF E1 Souza D E2 Santos D2 C E3 Silva D2 C E5 Soares D2 C Fig. 04 chave estrangeira dentro da própria tabela DOMÍNIOS E VALORES VAZIOS Quando uma tabela do banco de dados é definida, para cada coluna da tabela deve ser especificado um conjunto de valores (alfanumérico, numérico,...) que os campos da respectiva coluna podem assumir. Este conjunto de valores é chamado de domínio da coluna ou domínio do campo.

69 69 Em geral temos tipos como CHAR, para armazenamento de caracteres, NUMBER, para números, DATE para datas, entre outros. Cada SGBD s, apesar de trabalhar com SQL, possui seus próprios tipos de dados. Veja alguns formatos suportados pelo SQL: Fig. 05 Além disso, deve ser especificado se os campos da coluna podem estar vazios (null em inglês) ou não. Estar vazio indica que o campo não recebeu valor de seu domínio. Na fig. 4, o campo CategFuncional da linha corresponde ao empregado de código E1 está vazio. Isto indica que o empregado E1 não possui categoria funcional ou que esta ainda não foi informada.

70 RESTRIÇÕES DE INTEGRIDADE Um dos objetivos primordiais de um SGBD é a manutenção da integridade de dados sob seu controle. Dizer que os dados de um banco de dados estão íntegros significa dizer que eles refletem corretamente a realidade representada pelo banco de dados e que são consistentes entre si. Para tentar garantir a integridade de um banco de dados, os SGBDs oferecem o mecanismo de restrição de integridade. Uma restrição de integridade é uma regra de consistência de dados que é garantida pelo próprio SGBD. No caso da abordagem relacional, costuma-se classificar as restrições de integridade nas seguintes categorias: Integridade de domínio restrições deste tipo especificam que o valor de um campo deve obedecer a definição de valores admitidos para a coluna (o domínio da coluna). Nos primeiros SGBDs relacionais, era possível usar apenas domínios pré-definidos (número inteiro, número real, alfanumérico de tamanho definido, data, etc). Em SGBDs mais recentes, o usuário pode definir domínios próprios de sua aplicação (por exemplo, o domínio dos dias da semana ou das unidades da federação). Integridade de vazio através deste tipo de integridade é especificado se os campos de uma coluna podem ou não ser vazios (se a coluna é obrigatória ou opcional). Vale a pena lembrar que campos que compõem a chave primária sempre devem ser diferentes de vazio. Integridade de Chave trata-se da restrição que define que os valores da chave primária e alternativa devem ser únicos. Integridade Referencial é a restrição que define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada.

71 OPERAÇÕES RELACIONAIS E ÁLGEBRA RELACIONAL A álgebra relacional é baseada na teoria dos conjuntos, ou seja, a aplicação de operações matemáticas simples. É uma linguagem de consulta procedual simples aplicada sobre tabelas. OPERAÇÃO DE SELEÇÃO A operação de seleção é utilizada para selecionar uma linha ou um conjunto de linhas de uma tabela. Esta operação pressupõe a existência de uma condição de seleção, embora possa haver operações em que esta condição não se faça presente. A condição de seleção é construída com a utilização do conjunto de operadores lógicos apresentado em seguida: Temos seis operadores os quais podem ser utilizados com a condição de negação not. = Igual a <> Menor ou Maior que > Maior que < Menor que <= Igual ou menor que => Igual ou maior que Fig. 06 operadores lógicos. A condição de seleção pode ser formada por uma ou mais expressões de seleção unidas pelos operadores booleanos: AND, OR e NOT.

72 72 Vejamos nos exemplos abaixo: FUNCIONÁRIOS Nome Sexo Matrícula Departamento Cargo Nível Salário João Carlos Masc. 373 TI 3 Operador I 3.000,00 Carlos Brito Masc Programador I 3.500,00 Silvia Moraes Fem. 969 TI 2 Analista Sist II 5.500,00 Cláudia Tereza Fem. 161 TI 0 Secretária II 1.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Pedro Júlio Masc. 574 TI 2 Analista Sist I 4.500,00 Fig. 07 Como falamos, uma operação de seleção busca obter um grupo de linhas de uma tabela dentro de determinada condição, como, por exemplo, quais funcionários da tabela Funcionários são programadores, ou melhor, têm o cargo de programador. SELECIONE TODOS OS FUNCIONÁRIOS EM QUE CARGO = PROGRAMADOR Observe que não estamos fazendo nada mais do que um processo sobre um conjunto de dados, com uma condição de comparação de valores como critério de seleção. O resultado desta operação deve ser uma tabela com somente uma linha selecionada. Nome Sexo Matrícula Departamento Cargo Nível Salário Carlos Brito Masc. 872 Programador I 3.500,00 Fig. 08

73 73 Podemos ainda criar seleções compostas de mais de uma condição, como, por exemplo: Selecionar todos os funcionários que possuam salário maior que 3.000,00 e cujo nível funcional seja menor que 2. SELECIONE TODOS OS FUNCIONÁRIOS QUE SALÁRIO > 3.000,00 AND < II Como resultado: Nome Sexo Matrícula Departamento Cargo Nível Salário Carlos Brito Masc. 872 Programador I I 3.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Pedro Júlio Masc. 574 TI 2 Analista Sist I I 4.500,00 Fig. 09 Observe que apesar de a linha de João Carlos ter o valor da coluna nível menor que II, ela não satisfez a outra condição que era o valor da coluna salário maior que 3.000,00; logo, não constou na tabela resultante. OPERAÇÃO DE PROJEÇÃO Esta operação, quando aplicada sobre uma tabela, é acompanhada sempre de domínios selecionados. A finalidade é uma tabela que contém somente as colunas que se quer projetar. Como a projeção mostra apenas o domínio de uma coluna, e se nela existirem valores duplicados, estas duplicidades serão removidas, permanecendo apenas uma ocorrência.

74 74 Se em nosso exemplo necessitarmos saber em que departamentos existem funcionários, poderíamos usar uma instrução: MOSTRE TODOS OS FUNCIONÁRIOS PROJETANDO A COLUNA DEPARTAMENTO. Funcionários Nome Sexo Matrícula Departamento Cargo Nível Salário João Carlos Masc. 373 TI 3 Operador I 3.000,00 Carlos Brito Masc. 872 TI - 1 Programador I 3.500,00 Silvia Moraes Fem. 969 TI 2 Analista Sist II 5.500,00 Cláudia Tereza Fem. 161 TI 0 Secretária II 1.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Pedro Júlio Masc. 574 TI 2 Analista Sist I 4.500,00 Fig. 10 O resultado que seria apresentado seria: Fig. 11 Departamento TI 3 TI - 1 TI 2 TI 0 RH 1 OPERAÇÃO DE JUNÇÃO Esta operação é considerada extremamente importante no contexto de banco de dados relacionais, pois é por meio dela que se efetivam as ligações entre as tabelas de um banco de dados. A junção é na realidade a efetivação dos conceitos de navegação em um modelo de dados. Por meio da operação de junção, utilizando as chaves estrangeiras existentes nas tabelas de um banco de dados, podemos realizar a junção de linhas de uma tabela com as linha de outra tabela.

75 75 A junção é sempre realizada por meio de colunas comuns às tabelas, colunas estas definidas em um mesmo domínio, que é o conjunto de valores existentes em uma coluna de uma determinada tabela. Isto equivale a afirmamos que a junção é possível de ser realizada quando comparamos o valor de uma chave primária em uma tabela com o valor de uma chave estrangeira em outra tabela. A tabela resultante de uma junção tem uma estrutura que é resultante da concatenação das estruturas de cada tabela envolvida na operação. As colunas das tabelas que serviram para efetivar a junção aparecerão repetidas, pois cada tabela mantém sua estrutura original. Existem três tipos de junção entre tabelas de um banco de dados relacional, que dependem do tipo critério de comparação entre as colunas comuns (chaves estrangeira e chave primária) que estamos utilizando. Quando a condição de junção está baseada na igualdade de valores entre as colunas comuns, ou seja, estamos utilizando um operador de igual (=), essa junção se denomina junção equivalente, ou EQUI-JOIN, ou ainda junção natural. Quando numa junção de uma das tabelas apresenta todas as suas ocorrências independentemente de estarem ou não com equivalência em outra, essa junção é denominada de OUTER-JOIN. Quando uma operação de junção apresenta as ocorrências de uma tabela que não existem em outra, denominamos de OUTER-THEIA-JOIN.

76 76 Vamos voltar ao nosso exemplo básico de entendimento que é a tabela de funcionário e utilizar a tabela de departamentos. TABELA DE FUNCIONÁRIOS Nome Sexo Matrícula Departamento Cargo Nível Salário João Carlos Masc. 373 TI 3 Operador I 3.000,00 Carlos Brito Masc. 872 TI 1 Programador I 3.500,00 Sílvia Moraes Fem. 963 TI 2 Analista Sist. II 5.500,00 Cláudia Tereza Fem. 161 TI 0 Secretária II 1.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Pedro Júlio Masc. 574 TI 2 Analista Sist. I 4.500,00 Fig. 12 TABELA DE DEPARTAMENTOS Departamento Nome Departamento TI 3 Operações TI 1 Programação TI 2 Análise TI 0 Diretoria TI RH 1 Diretoria RH Ti 4 Secretária Fig. 13 Em ambas as tabelas, existe uma coluna comum que é Departamento. Equi Join A coluna departamento na tabela Departamentos é sua chave Primária, e na tabela funcionários ela é uma chave Estrangeira. Efetuar uma junção entre a tabela Funcionários e a tabela Departamentos em que: FUNCIONÁRIOS.DEPARTAMENTO = DEPARTAMENTOS.DEPARTAMENTO Observe que colocamos na frente do nome da coluna o nome da tabela em que está localizada, ou a que pertence na equação de junção ou Join. Isto então é um Equi-join.

77 77 Em realidade, um EQUI-JOIN realiza se como uma seleção em que colocamos uma equação com operador de igualdade entre a chave primária e uma chave estrangeira. Nome Sexo Matrícula Departamento Cargo Nível Salário Departamento Nome João Carlos Masc. 373 TI 3 Operador I 3.000,00 TI 3 Operações Carlos Brito Masc. 872 TI 1 Programador I 3.500,00 TI 1 Programaçã o Sílvia Moraes Fem. 963 TI 2 Analista Sist. II 5.500,00 TI 2 Análise Cláudia Tereza Fem. 161 TI 0 Secretária II 1.500,00 TI 0 Diretoria TI Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 RH 1 Diretoria RH Pedro Júlio Masc. 574 TI 2 Analista Sist. I 4.500,00 TI 2 Secretaria Fig. 14 Observe que não aparece nenhuma ocorrência para o departamento TI 4 Secretaria. O motivo é simples, não existe nenhuma linha na tabela Funcionários que tenha este valor de chave estrangeira. É o mesmo que fizéssemos os seguinte: SELECIONE TODOS OS FUNCIONÁRIOS E DEPARTAMENTOS EM QUE: FUNCIONÁRIOS.DEPARTAMENTO = DEPARTAMENTOS.DEPARTAMENTO E da mesma forma podemos realizar esta operação unindo a operação de projeção: SELECIONE NOME DA TABELA FUNCIONÁRIOS E NOME DA TABELA DEPARTAMENTOS EM QUE: FUNCIONÁRIOS.DEPARTAMENTO = DEPARTAMENTOS.DEPARTAMENTO

78 78 O resultado seria: Nome Nome João Carlos Operações Carlos Brito Programação Silvia Moraes Análise Cláudia Tereza Diretoria TI Pedro Júlio Diretoria RH Pedro Júlio Análise Fig. 15 As operações de álgebra relacional podem e devem ser utilizadas combinadas, pois nos dão um poderoso recurso de recuperação dos dados existentes em tabelas de um banco de dados relacional. Outer Join Vamos ver agora como funciona um Outer-Join. Nome Sexo Matrícula Departamento Cargo Nível Salário João Carlos Masc. 373 TI 3 Operador I 3.000,00 Carlos Brito Masc. 872 TI 1 Programador I 3.500,00 Sílvia Moraes Fem. 963 TI 2 Analista Sist. II 5.500,00 Cláudia Tereza Fem. 161 TI 0 Secretária II 1.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Pedro Júlio Masc. 574 TI 5 Analista Sist. I 4.500,00 Fig. 16

79 79 Para melhor demonstrar, vamos efetuar uma modificação na tabela de Funcionários, colocando o último Pedro Júlio com matrícula 574 agora com o departamento TI 5. SELECIONE TODOS OS FUNCIONÁRIOS E DEPARTAMENTOS EM QUE: FUNCIONÁRIOS.DEPARTAMENTO = DEPARTAMENTOS.DEPARTAMENTO OR FUNCIONÁRIOS.DEPARTAMENTO NOT = DEPARTAMENTOS.DEPARTAMENTO Observe que estamos fornecendo um sentido para a execução do outer-join, estamos lendo de Funcionário para Departamento. Neste caso o resultado será: Nome Sexo Matrícula Departamento Cargo Nível Salário Departamento Nome João Carlos Masc. 373 TI 3 Operador I 3.000,00 TI 3 Operações Carlos Brito Masc. 872 TI 1 Programador I 3.500,00 TI 1 Programação Sílvia Moraes Fem. 963 TI 2 Analista Sist. II 5.500,00 TI 2 Análise Cláudia Tereza Fem. 161 TI 0 Secretária II 1.500,00 TI 0 Diretoria TI Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 RH 1 Diretoria RH Pedro Júlio Masc. 574 TI 5 Analista Sist. I 4.500,00 Nulo Nulo Fig. 17 Existirá uma linha com o funcionário Pedro Júlio matrícula 574 e departamento TI 5, que será apresentada com os valores das colunas relativas a departamento com valor nulo, pois não existiria valor de chave primária para este valor de chave estrangeira, OU seja, não existe cadastrado na tabela departamentos e nenhum departamento com valor de chave primária igual a TI 5. É importante salientar que a operação de OUTER-JOIN não é comutativa, ou seja, se aplicarmos a operação OUTER-JOIN no sentido de navegação DEPARTAMENTO x FUNCIONÁRIO, o resultado será diferente do obtido no exemplo anterior, pois

80 80 resultará numa tabela em que teremos todas as ocorrências de DEPARTAMENTO independentemente de estarem ou não relacionadas a FUNCIONÀRIO. Existirá uma linha resultante da concatenação da linha da tabela departamento, de chave = TI 4, e a coluna nome = Secretaria, com uma linha da tabela Funcionários, porém as colunas equivalentes a esta tabela de Funcionários estarão com o seu valor nulo. Departamento Nome Nome Sexo Matrícula Departamento Cargo Nível Salário TI 3 Operações João Carlos Masc. 373 TI 3 Operador I 3.000,00 TI 1 Programação Carlos Brito Masc. 872 TI 1 Programador I 3.500,00 TI 2 Análise Sílvia Moraes Fem. 963 TI 2 Analista Sist. II 5.500,00 RH 1 Diretoria TI Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 TI - 4 Secretaria Nulo Nulo Nulo Nulo Nulo Nulo Nulo Fig. 18 Observe que este resultado, como utilizamos a última tabela com o Funcionário Pedro Luís em um departamento que não estava na tabela de Departamentos, ele também não será apresentado no resultado. A LÓGICA É SIMPLES: Para cada valor de chave primária, procuram se todas as ocorrências deste valor como chave estrangeira, apresentando uma linha para cada junção. Se não existir nenhuma ocorrência de chave estrangeira com aquele valor, é apresentada uma linha com os valores correspondentes da outra tabela nulos. As linhas da outra tabela (funcionários) que não foram comparadas com o valor de alguma chave primária não serão apresentadas. Por fim, agora em se tratando de Join, vamos ver como é o Outer-Theta-Join.

81 81 Outer-Theta-Join Sua utilização objetiva visualizar quais ocorrências de um valor de uma chave primária de uma tabela não possuem nenhuma ocorrência em chave estrangeira de outra tabela. Finalmente, se aplicarmos a operação OUTER-THETA-JOIN no sentido de navegação DEPARTAMENTO x FUNCIONÀRIO, obteremos uma tabela cuja estrutura também será a resultante da concatenação das estruturas das tabelas DEPARTAMENTO e FUNCIONÁRIO, e que terá todas as ocorrências de FUNCIONÁRIO. Esta operação também não é comutativa e o resultado será diferente, dependendo do sentido de navegação em que foi aplicada. Nome Sexo Matrícula Departamento Cargo Nível Salário Departamento Nome Pedro Júlio Masc. 574 TI 5 Analista Sist. I 4.500,00 Nulo Nulo Fig. 19 OPERAÇÃO DE DIVISÃO Esta operação tem como premissa a implementação de uma cláusula todos. Uma operação de seleção em que se diga: SELECIONE TODOS QUE... O operador de divisão também é baseado em comparação do valores de dados contidos nas colunas de duas tabelas. O exemplo seguinte apresenta uma operação de divisão baseada nas colunas Matrícula e Qualificação de uma tabela Habilitações de Funcionários, e na coluna Qualificação de uma tabela de Habilidades.

82 82 TABELA HABILITAÇÕES DE FUNCIONÁRIOS TABELA DE HABILIDADES Matrícula Qualificação Qualificação Nome 2 Programação 11 Análise Estruturada 73 Modelagem de Dados 43 Formação de Gerentes Fig. 20 Desejamos então saber quais os funcionários que possuem as qualificações 2 e 11, ou seja, queremos saber a matrícula de todos os funcionários que possuem habilitação em Programação e Análise Estruturada. O resultado a ser fornecido por esta operação será: Matrícula Fig. 21 Se analisarmos o resultado contra as tabelas inicialmente apresentadas, vamos observar que somente as matrículas 301 e 482 possuem todas as duas habilidades solicitadas. A matrículas 127 possui a habilidade 11, porém, não possui a 2, logo não satisfaz a cláusula todos. Se adicionarmos a este processo a tabela de funcionários, poderemos solicitar uma seleção em conjunto com a divisão, obtendo desta maneira o nome dos funcionários em lugar da matrícula.

83 83 Algumas operações denominadas tradicionais que vamos estudar agora, para serem executadas, estabelecem como principio que as tabelas envolvidas sejam tabelas união compatíveis, ou seja, elas possuem a mesma estrutura e disposição de colunas. Para que isto seja válido logo, é necessário que tenham existido duas operações de seleção de dados de uma mesma tabela relacional. Então, para que possamos estudá las, vamos realizar duas seleções inicialmente sobre a tabela de funcionários na qual incluiremos mais uma linha: Nome Sexo Matrícula Departamento Cargo Nível Salário João Carlos Masc. 373 TI 3 Operador I 3.000,00 Carlos Brito Masc. 872 TI 1 Programador II 3.500,00 Sílvia Moraes Fem. 963 TI 2 Analista Sist. II 5.500,00 Cláudia Tereza Fem. 161 TI 0 Secretária II 1.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Roberto Moreira Masc. 171 TI 1 Programador I 3.200,00 Pedro Júlio Masc. 574 TI 2 Analista Sist. I I 4.500,00 Fig. 22 Nossa seleção inicial: SELECIONE TODOS OS FUNCIONÁRIOS QUE POSSUAM CARGO = PROGRAMADOR. Obtivemos como resultado uma tabela com somente duas linhas, as referentes aos funcionários Carlos Brito e Roberto Moreira. Nome Sexo Matrícula Departamento Cargo Nível Salário Carlos Brito Masc. 872 TI 1 Programador II 3.500,00 Roberto Moreira Masc. 171 TI 1 Programador I 3.200,00 Fig. 23 Em segundo lugar vamos realizar outra seleção na tabela de funcionários, buscando identificar quem recebe acima de R$ 3.200,00 os quais denominaremos de Os bem de vida SELECIONE TODOS OS FUNCIONÁRIOS EM QUE SALÁRIO > 3.200,00

84 84 Como resultado obteremos a tabela Bem de Vida. Nome Sexo Matrícula Departamento Cargo Nível Salário Carlos Brito Masc. 872 TI 1 Programador I 3.500,00 Sílvia Moraes Fem. 963 TI 2 Analista Sist. II 5.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Pedro Júlio Masc. 574 TI 2 Analista Sist. I 4.500,00 Fig. 24 Agora que temos duas tabelas união compatíveis, podemos então estudar e entender os três primeiros operações tradicionais: União, Intersecção e Diferença de tabelas relacionais. OPERAÇÃO DE UNIÃO Esta operação implementa o operador boleano OR, e quando aplicamos esta operação em duas tabelas união compatíveis, obtemos uma tabela resultante, cuja estrutura será a mesma das duas tabelas originais, contendo todas as linhas que pertençam a um ou outra tabela. As linhas que fizerem parte de ambas as tabelas somente aparecerão uma vez no resultado, já que pelos princípios relacionais não existem duas linhas iguais em uma tabela (chave primária). A operação que vamos realizar de união objetiva obter todos os funcionários que são programadores ou são bem de vida. Fig. 25

85 85 Aplicando então o operador de união entre as duas tabelas, obteremos uma tabela resultante, que conterá todos os funcionários que são programadores, ou que recebam salário maior que Poderíamos então dizer que temos uma tabela relacional que apresenta os funcionários que: OU SÃO BEM DE VIDA OU SÃO PROGRAMADORES Nome Sexo Matrícula Departamento Cargo Nível Salário Carlos Brito Masc. 872 TI 1 Programador II 3.500,00 Sílvia Moraes Fem. 963 TI 2 Analista Sist. II 5.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Pedro Júlio Masc. 574 TI 2 Analista Sist. I 4.500,00 Roberto Moreira Masc. 574 TI 2 Diretor I 6.000,00 Pedro Júlio Masc. 171 TI 1 Programador I 3.200,00 Fig. 26 Uma pequena brincadeira, mas que permite que se ilustre este resultado. Vamos adiante. OPERAÇÃO DE INTERSEÇÃO Esta operação implementa o operador boleano AND, e também só deve ser aplicada sobre tabelas de mesma estrutura de dados. Aplicando esta operação sobre as nossas duas tabelas, obteremos uma tabela resultante que conterá todas as linhas que estejam na primeira tabela e também estejam na segunda tabela em questão.

86 86 As linhas que forem comuns nas duas tabelas somente aparecerão uma vez na tabela resultante. Utilizando então as tabelas anteriores de Programadores e Bem de vida, o resultado da INTERSEÇÂO vai nos mostrar quem são os programadores que estão bem de vida, ou seja, todos os Funcionários com cargo igual a Programador e salário superior a R$ 3.200,00. Fig. 27 Nome Sexo Matrícula Departamento Cargo Nível Salário Carlos Brito Masc. 872 TI 1 Programador I 3.500,00 Fig. 28 Este resultado corresponde às linhas que estão na intersecção das duas tabelas.

87 87 OPERAÇÃO DE DIFERENÇA A operação de diferença implementa os operadores boleanos NOT e AND, e deve ser aplicada somente sobre as tabelas união Compatíveis. As linhas que forem comuns nas duas tabelas somente aparecerão uma vez na tabela resultante. Utilizando então as tabelas anteriores de Programadores e Bem de Vida, o resultado da INTERSEÇÂO vai nos mostrar quem são os Funcionários que estão bem de vida, mas não soa programadores, ou seja, todos os Funcionários que não tem cargo de Programador e que tem salário superior a R$ 3.200,00 Fig. 29 Esta operação resulta em uma tabela que tem a mesma estrutura das tabelas originais e possui todas as linhas de uma tabela, que não pertençam à outra tabela da operação. A diferença não possui a característica da comunicação, sendo relevante a ordem como as tabelas são explicitadas na operação. Efetuando a diferença entre as tabelas Bem de Vida e Programadores dos exemplos anteriores, obteremos uma tabela que conterá todos os funcionários cujos salários sejam superiores a 3.200, mas que não sejam do cargo de Programadores.

88 88 Observe que estamos subtraindo de Bem de Vida os Programadores, algo como matematicamente escrever: BEM DE VIDA PROGRAMADORES Nome Sexo Matrícula Departamento Cargo Nível Salário Sílvia Moraes Fem. 963 Ti 2 Analista Sist II 5.500,00 Pedro Júlio Masc. 292 RH 1 Diretor I 6.000,00 Pedro Júlio Masc. 574 TI 2 Analista Sist. I 4.500,00 Fig. 30 Para demonstrar, vamos executar a operação em outro sentido. PROGRAMADORES BEM DE VIDA Nome Sexo Matrícula Departamento Cargo Nível Salário Roberto Moreira Masc. 171 Ti 1 Programador I 3.200,00 Fig. 31 Obtivemos como resultado somente a linha referente ao programador que não pertence ao grupo bem de vida, ou seja, os registros de funcionários cujo cargo seja programador e o salário não seja maior que R$ 3.200,00. Existe mais uma operação dentre as consideradas tradicionais, que chama-se Produto Cartesiano entre duas tabelas. Não o consideramos importante, pois sua utilização é muito restrita. Esta operação não necessita de tabelas união compatíveis, pois pode ser realizada entre quaisquer tabelas de um banco de dados relacional.

89 89 Vamos apresentar rapidamente um exemplo utilizando duas pequenas tabelas para demonstração. Alimento Quantidade Data Validade Número do Fabricante Feijão 2 20/08/01 2 Leite 3 12/07/01 4 Açúcar 5 12/08/01 1 Arroz 3 10/10/01 6 Azeite 2 12/03/02 5 Café 1 12/12/01 3 Número Nome Fabricante Fabricante 2 Coral 4 CCPL 1 União 6 Tio João 5 Galo 3 Pilão Fig. 32 Realizar o produto cartesiano entre estas duas tabelas é multiplicar cada ocorrência de uma tabela pela outra, ou seja, realizar a junção de cada linha da tabela de Alimentos uma vez com cada linha da tabela de fornecedores. Observe o resultado que teremos: Alimento Quantidade Data Validade Número do Número Nome Fabricante Fabricante Fabricante Feijão 2 20/08/ Coral Feijão 2 20/08/ CCPL Feijão 2 20/08/ União Feijão 2 20/08/ Tio João Feijão 2 20/08/ Galo Feijão 2 20/08/ Pilão Leite 3 12/07/ Coral Leite 3 12/07/ CCPL Leite 3 12/07/ União Leite 3 12/07/ Tio João Leite 3 12/07/ Galo Leite 3 12/07/ Pilão Açúcar 5 12/08/ Coral Açúcar 5 12/08/ CCPL Açúcar 5 12/08/ União Açúcar 5 12/08/ Tio João Açúcar 5 12/08/ Galo Açúcar 5 12/08/ Pilão Fig. 33 Não apresentamos toda a tabela resultante, e sim somente com três dos produtos. Nosso objetivo foi somente ilustrar este tipo de operação.

90 90 Vamos encerrar este capitulo sobre características de bancos de dados relacionais e álgebra relacional com uma grande das operações apresentadas. Operação Seleção Projeção Junção Equi join Outer Join Outer Theta Join Divisão Adição Intersecção Diferença Característica Seleciona um produto de linhas de acordo com uma condição Seleciona colunas de acordo com uma condição Une as estruturas de duas ou mais tabelas por meio de suas colunas comuns chaves estrangeiras e primárias. Implementa a cláusula Todos. Une duas tabelas de mesma estrutura. Seleciona as linhas comuns a duas tabelas de mesma estrutura. Subtrair de uma tabela as linhas que existem em outra. Fig. 34 A compreensão das operações relacionais é fundamental para o bom entendimento da navegação de dados em um banco de dados relacional, implicando durante as atividades de modelagem em um maior tirocínio quanto a organização dos relacionamentos que serão definidos.

91 91 Atividades do Capítulo 1) Considere o banco de dados relacional definido parcialmente abaixo (faltam as chaves da tabela Empregado): Empregado(CodigoEmpregado,Nome,NoPIS-PASEP) Dependente(CodigoEmpregado,NoDependente,Nome) CodigoEmpregado referencia Empregado Na tabela Empregado, tanto CodigoEmpregado quanto NoPIS-PASEP podem ser chave primária. Qual você escolheria como chave primária? Porque? 2) Abaixo aparece um esquema parcial para um banco de dados relacional. Identifique neste esquema as chaves primárias e chaves estrangeiras: Aluno (CodigoAluno,Nome,CodigoCurso) Curso(CodigoCurso,Nome) Disciplina(CodigoDisciplina,Nome,Creditos,CodigoDepartamento) Curriculo(CodigoCurso,CodigoDisciplina,Obrigatória-Opcional) Conceito(CodigoAluno,CodigoDisciplina,Ano-Semestre,Conceito) Departamento(CodigoDepartamento,Nome) 3) Para o banco de dados cujo esquema está definido abaixo, explique que verificações devem ser feitas pelo SGBD para garantir integridade referencial nas seguintes situações: a) Uma linha é incluída na tabela Consulta. b) Uma linha é excluída da tabela Paciente. Paciente(CodigoConvenio,NumeroPaciente,Nome) CodigoConvenio referencia Convenio Convenio(CodigoConvenio,Nome) Medico(CRM,Nome,Especialização) Consulta(CodigoConvenio,NumeroPaciente,CRM,Data-Hora) (CodigoConvenio,NumeroPaciente) referencia Paciente CRM referencia Medico

92 92 4) Para os itens abaixo, considere a seguinte base de dados: Depto(CodDepto,NomeDepto) Disciplina(CodDepto,NumDisc,NomeDisc,CreditosDisc) PreReq(CodDepto,NumDisc,CodDeptoPreReq,NumDiscPreReq) Turma(AnoSem,CodDepto,NumDisc,SiglaTur,CapacTur) Horario(AnoSem,CodDepto,NumDisc,SiglaTur,DiaSem,HoraIncio, NumHoras,CodPred,NumSala) Predio(CodPred,NomePred) Sala(CodPred,NumSala,CapacSala) Professor(CodProf,NomeProf,CodTit,CodDepto) ProfTurma(AnoSem,CodDepto,NumDisc,SiglaTur,CodProf) Titulação(CodTit,NomeTit) Observações NumDisc identifica a disciplina dentro de um departamento. Uma disciplina pode ter várias disciplinas como pré-requisito e um prérequisito pode ser usado para várias disciplinas. NumSala identifica a sala dentro de um prédio. SiglaTur identifica uma turma de uma disciplina dentro de uma ano/semestre. Uma turma pode ter vários professores e um professor pode ser professor de várias turmas. a) Identifique as chaves primárias das tabelas. b) Identifique as chaves estrangeiras.

93 93 5) Para uma tabela como a seguinte: Funcionários E # Nome D # Salário Departamentos D# NomeDepto D1 Contabilidade D2 Administração D3 Informática D4 RH E1 José D ,00 E2 Maria D ,00 E3 João D ,00 E4 Sílvia D ,00 E5 João D ,00 a) Quais os nomes dos empregados que ganham um salário menor que 2.000,00. b) Quais os nomes dos departamentos que ganham salário até 1.500,00. c) Quais os nomes dos empregados que trabalham no departamento D3. d) Quais os nomes de empregado que trabalham no departamento Contabilidade. e) Quais são os salários do departamento Contabilidade.

94 94 RESPOSTAS DE ALGUNS EXERCÍCIOS 1) Em um banco de dados relacional, a chave primária de uma tabela é aquela chave única que é utilizada como chave estrangeira em tabelas que referenciam a chave em questão. Assim, no caso do exercício CodigoEmpregado é a chave primária da tabela Empregado, já que ela é usada na tabela Dependente como chave estrangeira que referencia Empregado. 2) Abaixo estão indicadas as chaves primárias e estrangeiras: Aluno (CodigoAluno,Nome,CodigoCurso) CodigoCurso referencia Curso Curso(CodigoCurso,Nome) Disciplina(CodigoDisciplina,Nome,Creditos,CodigoDepartamento) CodigoDepartamento referencia Disciplina Curriculo(CodigoCurso,CodigoDisciplina,Obrigatória-Opcional) CodigoCurso referencia Curso CodigoDisciplina referencia Disciplina Conceito(CodigoAluno,CodigoDisciplina,Ano-Semestre,Conceito) CodigoAluno referencia Aluno CodigoDisciplina referencia Disciplina Departamento(CodigoDepartamento,Nome)

95 95 RESPOSTAS DE ALGUNS EXERCÍCIOS 3. a) Uma linha é incluída na tabela Consulta. A tabela Consulta contém duas chaves estrangeiras, (CodigoConvenio,NumeroPaciente) e CRM. Quando ocorrer uma inclusão em Consulta, é necessário verificar se estas chaves aparecem nas respectivas tabelas (Paciente e Medico). 3.b) Uma linha é excluída da tabela Paciente. A tabela Paciente é referenciada em outra tabela (Consulta) por uma chave estrangeira. Assim, ao realizar a exclusão é necessário verificar se não mais existem linhas em Consulta que referenciem a linha de Paciente que está sendo excluída. 4)

ENGENHARIA DA COMPUTAÇÃO

ENGENHARIA DA COMPUTAÇÃO ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 2 Prof. Msc. Ricardo Antonello ABORDAGEM ER A primeira etapa do projeto de um banco de dados é a construção de um modelo conceitual ou modelagem conceitual.

Leia mais

Modelo Entidade-Relacionamento

Modelo Entidade-Relacionamento Modelo Entidade-Relacionamento Banco de Dados I Fases do Projeto jt de BD Enunciado de requisitos entrevista com o usuário do banco de dados para entender e documentar seus requerimentos de dados. Projeto

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 3 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Conhecer a arquitetura de 3 esquemas (conceitual, lógico

Leia mais

Revisão de Banco de Dados

Revisão de Banco de Dados Revisão de Banco de Dados Fabiano Baldo 1 Sistema de Processamento de Arquivos Antes da concepção dos BDs o registro das informações eram feitos através de arquivos. Desvantagens: Redundância e Inconsistência

Leia mais

Banco de Dados - Senado

Banco de Dados - Senado Banco de Dados - Senado Introdução Ilka Kawashita Material preparado :Prof. Marcio Vitorino Ementa do Curso n Banco de Dados n Sistemas de Apoio à Decisão (SAD) n ORACLE BANCO DE DADOS (BD) n Modelo Entidade

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

AULA 11-12. Entidade-Relacionamento

AULA 11-12. Entidade-Relacionamento AULA 11-12 Modelo Conceitual, Lógico e Físico, Entidade-Relacionamento Curso: Técnico em Informática (Integrado) Disciplina: Banco de Dados Prof. Abrahão Lopes abrahao.lopes@ifrn.edu.br Modelos de banco

Leia mais

Ciclo de Desenvolvimento de Sistemas de BD

Ciclo de Desenvolvimento de Sistemas de BD Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Robson Nascimento Ciclo de Desenvolvimento de Sistemas de BD Investigação dos Dados Modelagem dos Dados

Leia mais

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE] 1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto

Leia mais

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada. Conceitos básicos Angélica Toffano Seidel Calazans E-mail: angelica_toffano@yahoo.com.br Conceitos introdutórios de Modelagem de dados Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Leia mais

MODELAGEM DE DADOS. Banco de Dados I. O uso da análise e do projeto Orientados a Objetos atenuou a separação! Unidade I

MODELAGEM DE DADOS. Banco de Dados I. O uso da análise e do projeto Orientados a Objetos atenuou a separação! Unidade I O uso da análise e do projeto Orientados a Objetos atenuou a separação! 1 Etapas do Projeto do BD Análise de Requisitos Coleta de informações sobre os dados e seus relacionamentos na organização Projeto

Leia mais

MC536 Bancos de Dados: Teoria e Prática

MC536 Bancos de Dados: Teoria e Prática Universidade Estadual de Campinas - UNICAMP Instituto de Computação - IC MC536 Bancos de Dados: Teoria e Prática Aula #3 : MER e MER Estendido Profs. Anderson Rocha e André Santanchè Campinas, 1 de Agosto

Leia mais

Banco de Dados I. Introdução. Fabricio Breve

Banco de Dados I. Introdução. Fabricio Breve Banco de Dados I Introdução Fabricio Breve Introdução SGBD (Sistema Gerenciador de Banco de Dados): coleção de dados interrelacionados e um conjunto de programas para acessar esses dados Coleção de dados

Leia mais

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo. Banco de Dados Modelagem de Dados com MER Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 Modelagem de Dados Modelagem de Dados tem como objetivo transformar uma

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL. Prof. Angelo Augusto Frozza, M.Sc.

PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL. Prof. Angelo Augusto Frozza, M.Sc. PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL Prof. Angelo Augusto Frozza, M.Sc. PROJETO CONCEITUAL Levantamento de requisitos Modelagem Conceitual Modelo ER PROJETO CONCEITUAL Parte integrante do Projeto

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

Banco de Dados I Introdução

Banco de Dados I Introdução Banco de Dados I Introdução Prof. Moser Fagundes Curso Técnico em Informática (Modalidade Integrada) IFSul Campus Charqueadas Sumário da aula Avaliações Visão geral da disciplina Introdução Histórico Porque

Leia mais

Módulo 4: Gerenciamento de Dados

Módulo 4: Gerenciamento de Dados Módulo 4: Gerenciamento de Dados 1 1. CONCEITOS Os dados são um recurso organizacional decisivo que precisa ser administrado como outros importantes ativos das empresas. A maioria das organizações não

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Projeto de Banco de Dados. Disciplina: Banco de Dados I José Antônio da Cunha

Projeto de Banco de Dados. Disciplina: Banco de Dados I José Antônio da Cunha Projeto de Banco de Dados Disciplina: Banco de Dados I José Antônio da Cunha Introdução Banco de Dados Esta aula apresenta os conceitos da área de banco de dados, que são necessários à compreensão do projeto

Leia mais

Faculdade Lourenço Filho - ENADE 2011-1

Faculdade Lourenço Filho - ENADE 2011-1 1. Quando se constrói um banco de dados, define-se o modelo de entidade e relacionamento (MER), que é a representação abstrata das estruturas de dados do banco e seus relacionamentos. Cada entidade pode

Leia mais

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos de Dados Abstração

Leia mais

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados - Banco de Dados Aula 02 Modelagem de Dados Roteiro Definição Evolução Projeto de BD Abstração Esquema e Instância Definição É uma representação, normalmente gráfica, de estruturas de dados reais. Auxilia

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL PROF. MS C. RICARDO ANTONELLO WWW.ANTONELLO.COM.B R PORQUE SER RELACIONAL? Hoje, há um claro predomínio dos SGBD relacionais, principalmente

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

1) O QUE NÃO É BANCO DE DADOS?

1) O QUE NÃO É BANCO DE DADOS? FMU - Graduação em Ciência da Computação - BANCO DE DADOS I - Prof. Fernando Alberto Covalski - pág 1 1) O QUE NÃO É BANCO DE DADOS? SISTEMAS ISOLADOS SISTEMA DE PRODUÇÃO SISTEMA DE VENDAS SISTEMA DE COMPRAS

Leia mais

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 7 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Aprender sobre a modelagem lógica dos dados. Conhecer os

Leia mais

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios BANCO DE DADOS Fixação dos conteúdos Integridade Referencial Normalização Exercícios BANCO DE DADOS X SGBD Banco de Dados: Um "banco de dados" pode ser definido como um conjunto de "dados" devidamente

Leia mais

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA GERENCIADOR DE BANCO DE DADOS BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SISTEMA GERENCIADOR

Leia mais

Unidade II ADMINISTRAÇÃO DE. Prof. Luiz Fernando de Lima Santos

Unidade II ADMINISTRAÇÃO DE. Prof. Luiz Fernando de Lima Santos Unidade II ADMINISTRAÇÃO DE BANCOS DE DADOS Prof. Luiz Fernando de Lima Santos Modelagem de Dados Coleção de ferramentas conceituais para descrever dados, suas relações e restrições Modelo Conceitual:

Leia mais

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

BANCO DE DADOS I AULA 3. Willamys Araújo

BANCO DE DADOS I AULA 3. Willamys Araújo BANCO DE DADOS I AULA 3 Willamys Araújo Modelo Conceitual Descreve quais dados serão armazenados no banco de dados as relações que existem entre eles. Independe do SGBD e da abordagem do banco de dados

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Atividade de modelagem de dados em diversos níveis de abstração Modelagem conceitual (projeto conceitual) abstração de mais alto nível objetivo: representação dos requisitos de

Leia mais

LINGUAGEM DE BANCO DE DADOS

LINGUAGEM DE BANCO DE DADOS LINGUAGEM DE BANCO DE DADOS Gabriela Trevisan Bacharel em Sistemas de Informação Universidade Federal do Rio Grande Pós-Graduanda Formação Pedagógica de Professores (FAQI) Conceito de BD Um banco de dados

Leia mais

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

Leia mais

Oficina. Praça das Três Caixas d Água Porto Velho - RO

Oficina. Praça das Três Caixas d Água Porto Velho - RO Oficina Praça das Três Caixas d Água Porto Velho - RO Oficina Ministrante: Marcel Leite Rios Apresentação Pessoal Marcel Leite Rios Prof. de Informática IFRO Graduado: Sistemas de Informação - ULBRA MBA

Leia mais

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)? Roteiro BCC321 - Banco de Dados I Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Conceitos Básicos Banco

Leia mais

MODELO ENTIDADE - RELACIONAMENTO

MODELO ENTIDADE - RELACIONAMENTO MODELO ENTIDADE - RELACIONAMENTO Modelo Entidade - Relacionamento = Percepção de que o mundo real é formado por um conjunto de objetos chamados entidades e pelo conjunto dos relacionamentos entre estes

Leia mais

Administração de Bancos de Dados

Administração de Bancos de Dados Modelo Entidade-Relacionamento Prof. Rodrigo M. Silva Administração de Bancos de Dados 1 silvars@gmail.com Plano de Aula Modelos de Dados (Revisão) O Modelo Entidade-Relacionamento Entidades Atributos

Leia mais

Dados. Qualquer elemento (aspecto, fato, medida etc.) representativo, disponível e coletável na realidade. fatos no estado bruto, conforme Platão;

Dados. Qualquer elemento (aspecto, fato, medida etc.) representativo, disponível e coletável na realidade. fatos no estado bruto, conforme Platão; Dados Os Dados são os fatos em sua forma primária, como observamos no mundo. Qualquer elemento (aspecto, fato, medida etc.) representativo, disponível e coletável na realidade. fatos no estado bruto, conforme

Leia mais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva

Leia mais

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD Introdução 1. CONCEITOS BÁSICOS DE BD, SBD E SGBD A importância da informação para a tomada de decisões nas organizações tem impulsionado o desenvolvimento dos sistemas de processamento de informações.

Leia mais

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

Modelagem de Dados Usando o Modelo Entidade-Relacionamento Usando o Modelo Entidade-Relacionamento MER 1 MER Levantamento e Análise de requisitos Entrevista Entender e documentar seus requisitos de dados Requisitos funcionais da aplicação empregadas ao banco de

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS Unidade 1 - Introdução Dados; Banco de Dados; Base de Dados; Projeto de Banco de Dados.

Leia mais

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento O modelo Entidade-Relacionamento Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento 1 Antes de começarmos: A modelagem conceitual é uma fase muito importante no plamejamento de um

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

Modelo Entidade-Relacionamento. Prof. Antonio Almeida de Barros Jr.

Modelo Entidade-Relacionamento. Prof. Antonio Almeida de Barros Jr. Modelo Entidade-Relacionamento Prof. Antonio Almeida de Barros Jr. Conteúdo Contexto Histórico A Importância da Modelagem de Dados Projeto de Banco de Dados Modelagem Conceitual Projeto Lógico Projeto

Leia mais

Banco de Dados 1 2º Semestre

Banco de Dados 1 2º Semestre Banco de Dados 1 2º Semestre Aula 07 Prof. Gladimir Ceroni Catarino gladimir@gmail.com SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS o Uma coletânea de conceitos que

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

20/05/2013. Sistemas de Arquivos Sistemas de arquivos. Sistemas de Gerenciamento de Banco de Dados (SGBD) Banco de Dados. Estrutura de um BD SGBD

20/05/2013. Sistemas de Arquivos Sistemas de arquivos. Sistemas de Gerenciamento de Banco de Dados (SGBD) Banco de Dados. Estrutura de um BD SGBD Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo Sistemas de Arquivos Sistemas de arquivos Principal característica é a replicação e isolamento de dados (ilhas de informações)

Leia mais

Introdução à Banco de Dados. Definição

Introdução à Banco de Dados. Definição Universidade Federal da Bahia Departamento de Ciência da Computação (DCC) Disciplina: Banco de Dados Profª. Daniela Barreiro Claro Introdução à Banco de Dados Definição Um banco de dados é uma coleção

Leia mais

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM GBC043 Sistemas de Banco de Dados Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM Página 2 Definição BD Def. Banco de Dados é uma coleção de itens de dados

Leia mais

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

Leia mais

Introdução e conceitos. Capítulo 1

Introdução e conceitos. Capítulo 1 Introdução e conceitos Capítulo 1 1 Temário Banco de Dados Compartilhamento de dados Sistema de Gerência de Banco de Dados Modelos de Banco de Dados Modelo conceitual Modelo lógico Modelo conceitual como

Leia mais

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs 1 Bancos de Dados - Introdução Melissa Lemos melissa@inf.puc-rio.br Tópicos Evolução dos Sistemas de Informação Esquemas Modelos Conceitual Lógico Características de SGBDs 2 Evolução tempo Programas e

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

Sistemas Gerenciadores de Bancos de Dados

Sistemas Gerenciadores de Bancos de Dados Sistemas Gerenciadores de Bancos de Dados Orivaldo V. Santana Jr A partir de slides elaborados por Ivan G. Costa Filho Fernando Fonseca & Robson Fidalgo 1 Sistemas de Arquivos Sistemas de arquivos Principal

Leia mais

Disciplina: Unidade II: Prof.: E-mail: Período:

Disciplina: Unidade II: Prof.: E-mail: Período: Encontro 03 Disciplina: Sistemas de Banco de Dados Unidade II: Modelagem Conceitual de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM 2. Modelagem Conceitual de Dados (Modelo

Leia mais

Banco de Dados I. 1. Conceitos de Banco de Dados

Banco de Dados I. 1. Conceitos de Banco de Dados Banco de Dados I 1. Conceitos de Banco de Dados 1.1. Características de um Banco de Dados. 1.2. Vantagens na utilização de um BD. 1.3. Quando usar e não usar um Banco de Dados. 1.4. Modelos, Esquemas e

Leia mais

MSc. Daniele Carvalho Oliveira

MSc. Daniele Carvalho Oliveira MSc. Daniele Carvalho Oliveira AULA 2 Administração de Banco de Dados: MSc. Daniele Oliveira 2 CONCEITOS FUNDAMENTAIS DE BANCO DE DADOS Administração de Banco de Dados: MSc. Daniele Oliveira 3 Conceitos

Leia mais

Introdução a Banco de Dados. Adão de Melo Neto

Introdução a Banco de Dados. Adão de Melo Neto Introdução a Banco de Dados Adão de Melo Neto 1 Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em uma disciplina da universidade cadastro

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados Modelo para organização dos dados de um BD. define um conjunto de conceitos para

Leia mais

Disciplina de Banco de Dados Parte V

Disciplina de Banco de Dados Parte V Disciplina de Banco de Dados Parte V Prof. Elisa Maria Pivetta CAFW - UFSM Modelo de Dado Relacional O Modelo Relacional O Modelo ER é independente do SGDB portanto, deve ser o primeiro modelo gerado após

Leia mais

GBD PROF. ANDREZA S. AREÃO

GBD PROF. ANDREZA S. AREÃO GBD PROF. ANDREZA S. AREÃO Dado, Informação e Conhecimento DADO: Estímulos captados pelos sentidos humanos; Símbolos gráficos ou sonoros; Ocorrências registradas (em memória, papel, etc.); Indica uma situação

Leia mais

Introdução e conceitos. Capítulo 1

Introdução e conceitos. Capítulo 1 Introdução e conceitos Capítulo 1 Temário Banco de Dados Compartilhamento de dados Sistema de Gerência de Banco de Dados Modelos de Banco de Dados Modelo conceitual Modelo lógico Modelo conceitual como

Leia mais

Curso Superior de Tecnologia em BD

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em BD Modelagem de Dados Aula 01 Revisão Modelos de Dados Existem modelos para diferentes níveis de abstração de representação de dados modelos conceituais modelos lógicos

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

SISTEMAS DE INFORMAÇÃO GERENCIAIS

SISTEMAS DE INFORMAÇÃO GERENCIAIS SISTEMAS DE INFORMAÇÃO GERENCIAIS Aluno: Luiza Cavalcanti Marques Orientador: Silvio Hamacher Introdução A modelagem e a utilização de bancos de dados em atividades gerenciais têm sofrido um aumento significativo

Leia mais

Propriedades de entidades

Propriedades de entidades Propriedades de entidades Angélica Toffano Seidel Calazans E-mail: angelica_toffano@yahoo.com.br Abordagem Entidade-Relacionamento Entidade isoladamente não informa nada. É necessário atribuir propriedades

Leia mais

I Requisitos de um modelo conceitual: - clareza (facilidade de compreensão) - exatidão (formal)

I Requisitos de um modelo conceitual: - clareza (facilidade de compreensão) - exatidão (formal) Modelagem Conceitual C O objetivo É: Representar a semântica da informação, independente de considerações de eficiência. D O objetivo NÃO É: Descrever a estrutura do armazenamento do banco de dados. I

Leia mais

Banco de Dados I. Prof. Bal. Emerson Meneses Inocente

Banco de Dados I. Prof. Bal. Emerson Meneses Inocente Banco de Dados I Prof. Bal. Emerson Meneses Inocente Continuação aula 1 Arquitetura de SGBD Relacional ocaracterísticas: Independência de dados e programas; Suporte a múltiplas visões de usuários; Uso

Leia mais

Capítulo 5 Complemento. 5.1 Laudon, Cap. 5

Capítulo 5 Complemento. 5.1 Laudon, Cap. 5 Capítulo 5 Complemento Fundamentos de Bancos de Dados: Modelo de Entidade e Relacionamento - MER 5.1 Laudon, Cap. 5 Modelo mais utilizado: simplicidade e eficiência. Banco de dados relacional. Base: percepção

Leia mais

Ciclo de vida de um banco de dados relacional

Ciclo de vida de um banco de dados relacional Ciclo de vida de um banco de dados relacional 1. Formulação e análise de requisitos: a) Relacionamentos naturais entre os dados (independentes de processo). b) Requisitos de uso (dependentes de processo).

Leia mais

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS Bancos de Dados Conceitos Fundamentais Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos

Leia mais

Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com

Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Introdução a Banco de Dados Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 12/06/2013 Sumário Motivação da Disciplina

Leia mais

Curso de Gestão em SI MODELAGEM DE DADOS. Rodrigo da Silva Gomes. (Extraído do material do prof. Ronaldo Melo - UFSC)

Curso de Gestão em SI MODELAGEM DE DADOS. Rodrigo da Silva Gomes. (Extraído do material do prof. Ronaldo Melo - UFSC) Curso de Gestão em SI MODELAGEM DE DADOS Rodrigo da Silva Gomes (Extraído do material do prof. Ronaldo Melo - UFSC) Modelo Conceitual Descrição do banco de dados de forma independente de implementação

Leia mais

Profa. Daniela Barreiro Claro

Profa. Daniela Barreiro Claro Profa. Daniela Barreiro Claro Modelar é criar representações do mundo real A modelagem relacional pode ser representada via MER (Modelo de Entidade Relacionamento) O MER define estruturas e restrições

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 REVISÃO BANCO DE DADOS I O que é banco de dados? Ou seja afinal o que é um SGBD? REVISÃO BD I REVISÃO DE BD I Um Sistema de Gerenciamento de

Leia mais

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados 01) Defina com suas próprias palavras: a) Banco de Dados b) Sistema Gerenciador de Banco de Dados c) Sistema de Banco de

Leia mais

Análise de Ponto de Função

Análise de Ponto de Função Complemento para o Curso Análise de Ponto de Função FUNÇÕES DO TIPO DADO O termo Arquivo não significa um arquivo do sistema operacional, como é comum na área de processamento de dados. Se refere a um

Leia mais

Modelagem de dados usando o modelo BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS

Modelagem de dados usando o modelo BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS Modelagem de dados usando o modelo Entidade-Relacionamento BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS Introdução Modelagem conceitual fase de planejamento/projeto de um BD; Modelo Entidade/Relacionamento

Leia mais

Lista de exercícios 01

Lista de exercícios 01 PARTE I Lista de exercícios 01 1. Defina os seguintes termos: entidade, atributo, valor do atributo, atributo composto, atributo multivalorado, atributo derivado, atributo-chave, domínio. 2. Explique as

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Banco de Dados I Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Dados

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais