CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
ENSINO MÉDIO INTEGRADO AO TÉCNICO EM
INFORMÁTICA PARA INTERNET
TLBD I
Apostila - Parte I
PROFª CÍNTIA PINHO
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Sumário
1.
BANCO DE DADOS .................................................................................................................................4
1.1.
Uma Definição ......................................................................................................................................4
1.1.1.
Exemplos...............................................................................................................................................4
1.1.2.
Base de Dados ......................................................................................................................................4
2.
SURGIMENTO DO BANCO DE DADOS ...................................................................................................4
3.
IMPORTÂNCIA DE UM BANCO DE DADOS ............................................................................................5
3.1.
Dado .....................................................................................................................................................5
3.2.
Informação ...........................................................................................................................................6
3.2.1.
A Informação como Recurso da Empresa.............................................................................................6
4.
OBJETIVOS .............................................................................................................................................6
5.
INTRODUÇÃO ........................................................................................................................................7
6.
Modelo Relacional de Banco de Dados.................................................................................................9
7.
Arquiteturas ..........................................................................................................................................9
7.1.
Plataforma Centralizada .......................................................................................................................9
7.2.
Sistema de Computador Pessoal (PC)................................................................................................ 10
7.3.
Arquitetura Cliente Servidor.............................................................................................................. 10
7.4.
Arquitetura de Banco de Dados Distribuídos .................................................................................... 11
8.
SGBD (Sistema Gerenciador de Banco de Dados) .............................................................................. 12
8.1.
Processamento de dados com uso de SGBD ..................................................................................... 12
8.2.
Principais Componentes de um SGBD ............................................................................................... 13
8.3.
Características do SGBD .................................................................................................................... 13
8.4.
Motivação para SGBDs ...................................................................................................................... 14
8.5.
Exemplos de SGBD’S .......................................................................................................................... 14
9.
ORGANIZAÇÕES BÁSICAS DE ARQUIVOS............................................................................................ 14
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
10.
MODELAGEM DE DADOS ................................................................................................................... 15
10.1.
Importância da Modelagem .............................................................................................................. 16
10.2.
Princípios da Modelagem .................................................................................................................. 16
10.3.
Modelo Entidade Relacionamento .................................................................................................... 16
10.3.1.
Entidade ............................................................................................................................................. 16
10.3.2.
Atributo ............................................................................................................................................. 17
10.3.3.
Instância............................................................................................................................................. 18
10.3.4.
Identificador (Chave Primária) .......................................................................................................... 19
10.3.5.
Chave Secundária ou Chave Estrangeira ........................................................................................... 20
10.4.
Dicionário de Dados........................................................................................................................... 20
10.4.1.
Atividade – Enxergando Entidades .................................................................................................... 22
10.5.
Relacionamentos ............................................................................................................................... 23
10.6.
Identificação de Entidade e Relacionamento .................................................................................... 23
10.7.
Grau de Relacionamento ................................................................................................................... 25
10.8.
Cardinalidade ..................................................................................................................................... 26
10.8.1.
Exemplo: Como Determinar as Cardinalidades de um Relacionamento .......................................... 26
10.8.2.
Relacionamento de Um-para-Um...................................................................................................... 27
10.8.3.
Relacionamento de Um-para-Muitos ................................................................................................ 28
10.8.4.
Relacionamento de Muitos-para-Muitos .......................................................................................... 29
11.
NORMALIZAÇÃO DE DADOS ............................................................................................................... 29
11.1.
Primeira Forma Normal (1NF ) .......................................................................................................... 30
11.2.
Segunda Forma Normal (2NF ) .......................................................................................................... 31
11.3.
Terceira Forma Normal (3NF ) ........................................................................................................... 32
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
1.
BANCO DE DADOS
1.1.
Uma Definição
É um conjunto de dados, relativos a um determinado ambiente, por exemplo, um empresa de
fornecimento de energia elétrica, armazenados em um ou vários computadores e que guardam entre si algum
relacionamento.
1.1.1. Exemplos

Banco de Dados de Recursos Humanos de uma empresa;

Banco de Dados de Aplicações Financeiras;

Banco de Dados de uma empresa de energia elétrica.
1.1.2. Base de Dados
É o conjunto de todos os dados de um determinado ambiente, estejam eles armazenados em
computador ou não.
Exemplo: Banco de Dados de Recursos Humanos + as correspondências expedidas e recebidas, pela
empresa, e que estão guardadas nos armários de cada departamento.
2.
SURGIMENTO DO BANCO DE DADOS
Os fatores que levaram ao desenvolvimento dos bancos de dados foram: praticidade, rapidez,
eficiência e confiabilidade.
Podemos citar como exemplo de armazenamento de dados, que assemelha-se aos sistemas
computacionais, os arquivos de aço, encontrado nas empresas, que armazenam fichas, pastas e outros
documentos, organizados em gavetas.
A necessidade de criar um meio computacional que permitisse armazenar grande quantidade de dados,
de acesso rápido e facilitado, também teve sua evolução, dos inconvenientes que os sistemas de arquivos
em disco possuíam:

Não possuía controle de acesso concorrente (vários usuários);
4
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO

Não permitia executar mais de um processo ao mesmo tempo num mesmo arquivo de dados;

A definição da estrutura do arquivo encontrava-se inserida no próprio aplicativo – os programas
controlavam as tarefas de leitura e gravação – manutenção dos sistemas tornavam-se complexas;

Inconsistências, redundâncias, dificuldades de acesso e isolamento dos dados;

Problemas de segurança, relativo aos dados;

Acesso ao arquivo era efetuado de forma direta pelo aplicativo – sistema;
3.
IMPORTÂNCIA DE UM BANCO DE DADOS
Estão presentes nos mais diversos setores;
Muito utilizado atualmente, praticamente em todas as transações que realizamos em nosso dia-a-dia.
As Transações envolvem dados ou informações, essas informações ou dados podem ser de nós mesmos, de
outras pessoas ou organizações.
Exemplo: Quando ligamos em um serviço de atendimento ao cliente, e o atendente pede um
momento para verificar as informações, certamente estas informações estão armazenadas em algum
banco de dados.
Os Sistemas de Informações manipulam informações que estão armazenadas em banco de dados.
Ou seja, os banco de dados alimentam os Sistemas de Informações.
CONHECIMENTO (quando eu tenho o nº de informações satisfatórias,
também de acordo com objetivos pré-estabelecidos, essas informações
geram um nível de conhecimento pretendido).
INFORMAÇÃO ( Quanto os dados são organizados, partindo de um
objetivo, eles fornecem a informação desejada).
DADOS ( por si só, não tem um valor significativo)
significativorepresentativo
Portanto tudo que iremos estudar nesta disciplina, é voltada para formar uma base para que o
sistema de informação gere a possibilidade das pessoas obterem um maior conhecimento.
3.1.

Dado
Representação de um evento do mundo físico, de um fato ou de uma idéia
5
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO

Representação de uma propriedade ou característica de um objeto real

Não tem significado por si só

Ex.: quantidade de Kwh consumidos em uma residência.
3.2.
Informação

Organização e agregação dos dados, permitindo uma interpretação

Informação  interpretação dos dados

Ex.: Consumo de energia comparado com a capacidade geradora da usina.
Identificados
Dados
Organizados
Agrupados
Geram Informação
Armazenados
Recuperados
3.2.1. A Informação como Recurso da Empresa
4.
OBJETIVOS
Entender o que é um BANCO DE DADOS e as características de um sistema gerenciados de
BANCO DE DADOS.
Avaliar tecnicamente as propriedades dos BANCOS DE DADOS, qual a tecnologia que vou utilizar no
meu desenvolvimento?
6
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
5.
INTRODUÇÃO
CONCEITO: um banco de dados é uma coleção de dados armazenados eletronicamente.
Ex: Arquivos. Estes arquivos podem ser:
Arquivos de Texto;
Imagens;
Músicas;
Arquivos de Registros
Estes arquivos é o que iremos estudar. Exatamente porque banco
de dados são arquivos de registros relacionados a um determinado elemento ou entidade.
Os dados em BANCO DE DADOS são gerenciados como uma única entidade:
Estes dados estão agrupados e gerenciados como se fosse uma única unidade, na qual o sistema
não trabalha com eles de forma independente, porque eles estão interligados de acordo com uma estrutura,
portanto o sistema o visualiza como um único elemento contendo diversas informações. Uma vez acessando
este banco de dados, na forma de usuário, podemos trabalhar com eles de forma independente de acordo
com a estrutura de acesso única, definida para o BANCO DE DADOS.
USUÁRIO
Inserção
Remoção
Alteração
Consulta
DADOS
Níveis de Interação entre o Usuário e o Banco de Dados
7
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
USUÁRIO
APLICAÇÃO
SGBD
DADOS
O usuário faz uma solicitação de dados para a aplicação, ou seja, ele não entra em contato direto
com o arquivo de dados, ele faz isso através do seu aplicativo ou Sistema de Informação, este por outro lado
faz uma chamada ao SGBD, que é o sistema Gerenciador de Banco de dados. A aplicação repassa estes
valores que foram digitadas pelo usuário, através de uma rotina que o que o SGBD entenda assim, estes
dados são repassados ao arquivo lógico de dados.
O importante é que o usuário, não deve e não pode acessar diretamente os dados, porque quem
mantém a integridade e gerencia o banco de dados é o SGBD, ele é quem garante que o banco de dados
esteja em seu funcionamento normal. Por isso os usuários acessam as informações através de uma interface
desenvolvida para ele, com permissões pré-determinadas, mantendo desta forma o BANCO DE DADOS
seguro.
Diferentes níveis de abstração
USUÁRIO
Armazena, recupera,
altera, exclui e consulta os
dados.
Manipula, mantém e
gerencia os dados.
APLICAÇÃO
SGBD
Arquivo de registros
DADOS
Diferentes
níveis
fisicamente
armazenados
de de abstração
forma eletrônica no HD.
USUÁRIO
Camada Externa
APLICAÇÃO
Camada Lógica
SGBD
Camada Física
DADOS
8
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
6.
MODELO RELACIONAL DE BANCO DE DADOS
Trata a relação entre as entidades como se fossem conjuntos, estabelecendo que tipo de ligação
existe entre as entidades.
Bancos de dados relacionais apresentam um nível de flexibilidade muito grande no tratamento da
informação.
O sistema de computação que envolve banco de dados de evoluíram muito, de maneira a permitir
que os dados tenham maior disponibilidade e facilidade de acesso, segurança, rapidez. Por isso existem
arquiteturas diferenciadas, de acordo com a necessidade da organização.
7.
ARQUITETURAS
Plataforma Centralizada
Sistema de Computador Pessoal (PC)
Arquitetura Cliente Servidor
Arquitetura de Banco de Dados Distribuídos
7.1.
Plataforma Centralizada
Existe um único banco de dados, manipulado, por exemplo, por um MAIN FRAME, é um tipo de
computador mais antigo, que já caiu em desuso, mas é um exemplo de um computador com altíssimo poder
de processamento, armazenamento e memória, ou seja, um computador com grande capacidade. Como
funciona esta arquitetura:
9
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Os terminais que fazem o acesso dos usuários ao BD, se comunicam com o MAIN FRAME, e não
precisam ter grande capacidade, pois fazem uso da capacidade do MAIN FRAME, desta forma, são
chamados de terminais burros.
7.2.
Sistema de Computador Pessoal (PC)
Neste caso a aplicação possui o seu próprio BD em um único computador, ou seja, não busca os
dados em uma rede ou em algum servidor.
APLICAÇÃO
BD
7.3.
Arquitetura Cliente Servidor
No Banco de Dados com a arquitetura Cliente Servidor, os termais possuem a aplicação do usuário,
que remete os comandos e operações do usuário ao servidor central, e fazem operações de entrada e saída
de dados, o cliente faz a solicitação e o servidor responde. Neste caso, tanto o cliente como o servidor
possuem poder de processamento.
10
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
7.4.
Arquitetura de Banco de Dados Distribuídos
Neste caso, podem ter vários Bancos de Dados, que podem estar em computadores ou servidores
diferentes e também uma série de clientes que podem acessar dados de qualquer servidor. Para isso é
necessário o uso do SGBD, que será explicado posteriormente.
S2
BD
S1
BD
S3
BD
11
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
8.
SGBD (SISTEMA GERENCIADOR DE BANCO DE DADOS)
Conjunto de software para gerenciar (definir, criar, modificar, usar) um BD e garantir a integridade
e segurança dos dados. O SGBD é a interface entre os programas de aplicação e o BD. Em inglês é
denominado DataBase Management System (DBMS).
É um conjunto de dados associados a um conjunto de programas para acesso a estes dados.
Cada programa dentro SGBD tem uma função, exemplos: acesso aos dados, armazenamento,
exclusão, consulta etc.
8.1.
Processamento de dados com uso de SGBD
Os dados usados por uma comunidade de usuários são integrados no Banco de Dados. Cada
informação é armazenada uma única vez, sendo que as eventuais redundâncias são controladas pelo
sistema em computador, ficando transparentes para os usuários.
12
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
8.2.

Principais Componentes de um SGBD
Dicionário de dados (Data Dictionary): Descreve os dados e suas relações em forma conceitual e
independente de seu envolvimento nas diversas aplicações. Fornece referências cruzadas entre os
dados e as aplicações.

Linguagem de definição de dados (DDL - Data Definition Language): Descreve os dados que estão
armazenados no BD. As descrições dos dados são guardadas em um “meta banco de dados”.

Linguagem de acesso (DML - Data Manipulation Language): Usada para escrever as instruções que
trabalham sobre a base de dados, permitindo o acesso e atualização dos dados pelos programas de
aplicação. Geralmente integrada com a DDL.

Linguagem de consulta (QUERY): Permite que o usuário final, com poucos conhecimentos técnicos,
possa obter de forma simples, informações do BD.

Utilitários administrativos: Programas auxiliares para carregar, reorganizar, adicionar, modificar
a
descrição do BD, obter cópias de reserva e recuperar a integridade física em caso de acidentes.
8.3.
Características do SGBD
Autocontenção – armazenamento de dados e metadados(arquivos de descrição sobre os dados
armazenados).
Independência dos dados – os dados e metadados precisam ser mantidos independentes da aplicação
que acessa o BD.
Abstração – O usuário não precisa saber dos detalhes de como os dados são armazenados pelo SGBD.
Por isso o SGBD abstrai estas informações.
Visões – Limitações aos usuários, de acordo com sua função, para muitos usuários eles possuem acesso
ao banco de dados apenas para consulta, ou seja, não podem fazer alteração de dados.
Controle das transações – Garante a integridade do BD.
Controle da concorrência – Faz o controle caso dois cliente tentem acessar o mesmo dado mesmo
tempo.
13
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
8.4.
Motivação para SGBDs
A utilização dos SGBDs traz os seguintes problemas:
É um produto caro;
É um sistema a mais a ser aprendido e gerenciado;
Ocupa espaço de armazenagem no computador.
Porém traz vantagens muito maiores:
Consistência de dados e independência de dados
O SGBD é a ferramenta por excelência para promover a integração dos diversos componentes de um
sistema de software;
Concentram o maior potencial para promover aceso compartilhado de informação, sem bloquear
desnecessariamente o acesso compartilhado;
Retiram dos programas aplicativos muita da complexidade de gerenciamento de estruturas de acesso
aos dados;
Facilitam a proteção contra a perda de dados, através de recursos de backup;
Promovem a adoção de padrões para toda a empresa, facilitando seu emprego.
8.5.
Exemplos de SGBD’S
Oracle;
MySQL;
Postgre SQL;
SQL Server;
Microsoft Access (porém não possui todas as características de um SGBD, como o controle de
concorrência, a arquitetura cliente servidor não é completa, por isso é utilizados para aplicações de
pequeno porte).
9.

ORGANIZAÇÕES BÁSICAS DE ARQUIVOS
Estruturas de Dados: define a forma como os dados estão organizados, como se relacionam e como
serão manipulados pelos programas. Ex: vetores e matrizes, registros, filas, pilhas, árvores, grafos, etc.

Arquivo: coleção de registros lógicos, cada um deles representando um objeto ou entidade. Na prática
os arquivos geralmente estão armazenados na memória secundária (fitas e discos) e são usados para
14
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
armazenar os resultados intermediários de processamento ou armazenar os dados de forma
permanente.

Registro lógico (registro) : seqüência de itens, cada item sendo chamado de campo ou atributo,
correspondendo a uma característica do objeto representado. Os registros podem ser de tamanho fixo ou
de tamanho variável.

Campo: item de dados do registro, com um nome e um tipo associados

Bloco: unidade de armazenamento do arquivo em disco, também denominado registro físico. Um registro
físico normalmente é composto por vários registros lógicos. Cada bloco armazena um número inteiro de
registros.

Chave: é uma seqüência de um ou mais campos em um arquivo

Chave primária: é uma chave que apresenta um valor diferente para cada registro do arquivo. É usada
para identificar, de forma única, cada registro.

Chave secundaria: é uma chave que pode possuir o mesmo valor em registro distintos. É normalmente
usada para identificar um conjunto de registros.

Chave de acesso: é uma chave usada para identificar o(s) registro(s) desejado(s) em uma operação de
acesso ao arquivo.
10.
MODELAGEM DE DADOS
Segundo Valença (2008), modelagem de sistemas, tanto a nível funcional quanto de dados, é um
requisito fundamental para a obtenção de produtos de software de maior qualidade e confiabilidade.
Entretanto, percebe-se que cada vez menos profissionais têm dado a atenção devida ao processo de
construção de modelos de suas aplicações. Isso provavelmente se deve às pressões por sistemas em prazos
cada vez mais curtos e com menores custos de produção mas, por outro lado, acaba por prejudicar – e muito
– o entendimento correto do problema e, consequentemente, a construção do sistema que atenda às reais
expectativas do usuário.
Esta situação muitas vezes leva a sistemas de baixa qualidade, com elevada necessidade de
modificação e de difícil manutenção.
15
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
10.1. Importância da Modelagem

Um modelo é uma simplificação da realidade.

Contruímos modelos para compreender melhor o sistema que estamos desenvolvendo.

o
Os modelos ajudam a visualizar o sistema como ele é ou como desejamos que seja.
o
Os modelos permitem especificar a estrutura ou o comportamento de um sistema.
o
Os modelos proporcionam um guia para a construção do sistema.
o
Os modelo documentam as decisões tomadas.
Construímos modelos de sistemas complexos porque não é possível compreendê-los em sua
totalidade.
10.2. Princípios da Modelagem

A escolha dos modelos a serem criados tem profunda influência sobre a maneira como um
determinado problema é atacado e como uma solução é definida.

Cada modelo poderá ser expresso em diferentes níveis de precisão.

Os melhores modelos estão relacionados à realidade.

Nenhum modelo único é suficiente. Qualquer sistema não-trivial será melhor investigado por meio de
um conjunto de modelos quase independentes.
10.3. Modelo Entidade Relacionamento
O modelo Entidade-Relacionamento foi definido por Peter Chen em 1976.
Segundo Chen, a visão de uma dada realidade, baseia-se no relacionamento entre entidades, os
quais retratam os fatos que governam esta mesma realidade, e que cada um (ENTIDADE) pode possuir
atributos (qualificações desta realidade)
10.3.1.
Entidade
Define-se entidade como aquele objeto que existe no mundo real com uma identificação distinta e
com um significado próprio. É um elemento do mundo real inserida no mundo eletrônico. Exemplos: pessoas,
carros, escolas etc.
16
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Para definir as ENTIDADES que irão participar do meu modelo de Banco de Dados, é necessário
conhecer o Domínio (contexto de onde estou construindo toda a modelagem de um mundo real para o
eletrônico).
A representação gráfica de uma entidade no MER (Modelo Entidade-Reladionamento) se realiza
através de um retângulo, com o nome desta entidade em seu interior, como mostra a figura.
ENTIDADES
CLIENTE
PRODUTO
FUNCIONÁRIO
NOTA FISCAL
EXEMPLO:
DOMÍNIO  ESCOLA
ENTIDADES  ALUNOS PROFESSORES TURMAS DISCIPLINAS NOTAS
Cada ENTIDADE se relaciona com as outras dentro do domínio escola.
A ENTIDADE pode ser definida por meio de suas características que podem chamar de ATRIBUTOS.
Exemplo:
Entidade
PESSOA
10.3.2.
Atributos:
Nome
CPF
Idade
Sexo
Altura
Peso, etc.
Atributo
É um dado associado a cada ocorrência de uma ENTIDADE ou de um RELACIONAMENTO. Os
atributos permitem descrever uma ENTIDADE, no caso do exemplo acima sabemos que: o que descreve
uma pessoa é o seu nome, CPF, idade, sexo etc.
Toda entidade possui propriedade que são descritas por Atributos. No MER supõe que todas as
instâncias de uma dada classe de entidade possuem os mesmos atributos.
17
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Considere a entidade FUNCIONÁRIO uma empresa.
O que descreve Funcionário?
Funcionário é descrito por:
Número de mátricula
Nome
Data da admissão
No DER os atributos PODEM ser representados por um circulo em torno de seu nome, como mostra a
figura:
TIPOS DE ATRIBUTO
MONOVALORADO – Exemplo - Data de Nascimento – só pode receber um único valor, ou seja, uma
pessoa só pode ter um único dia para o seu nascimento.
MULTIVALORADO – Pode receber muitos valores. Exemplo: Cor preferida, pode receber valores
diferenciados, como verde, vermelho, preto, etc.
COMPOSTO – Exemplo – Endereço. Existem vários elementos que compões o mesmo atributo
Endereço, como rua, nº, bairro, CEP, cidade, estado.
DERIVADO – Seu valor é determinado com base em outro atributo. Exemplo: O atributo Idade pode
ser definido pelo atributo data de nascimento.
10.3.3.
Instância
É uma ocorrência em particular de uma ENTIDADE. Exemplo: A Entidade Pessoa, pode ter como
instância a pessoa João Carlos.
18
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
10.3.4.
Identificador (Chave Primária)
Conjunto de um ou mais atributos, cujos valores identificam de maneira unívoca uma ocorrência da
ENTIDADE. Serve para localizar uma Instância em particular.
Exemplo: para localizar a INSTÂNCIA do exemplo anterior João Carlos, posso utilizar como
identificador o CPF, que é único desta pessoa, não existe duas pessoas com o mesmo CPF no Brasil.
Este atributo IDENTIFICADOR é comumente chamado de Chave Primária.
Características de uma Chave Primária :
a - NÂO PODE haver duas ocorrências de uma mesma entidade com o mesmo conteúdo na Chave Primária
b - A chave primária não pode ser composta por atributo opcional , ou seja , atributo que aceite nulo.
c - Os atributos identificadores devem ser o conjunto mínimo que pode identificar cada instância de um
entidade.
d - Não devem ser usadas chaves externas. (Atributos sobre os quais você não tem controle. Ex: CPF)
e - Cada atributo identificador da chave deve possui um tamanho reduzido
f - Não deve conter informação volátil.
COMO ESCOLHER O ATRIBUTO CHAVE?
Para o exemplo citado acima, não é difícil escolher o atributo chave de uma pessoa, pode ser o CPF
ou até mesmo o RG, porém algumas ENTIDADES, são pobres em atributos de Chaves.
Exemplo:
Por exemplo, em um Banco de Dados de uma Locadora, tem a ENTIDADE DVD.
Neste caso, sabemos que podem existir vários filmes com mesmo título, gênero ou duração, por isso
não posso escolher nenhum destes atributos como Chave Primária, por isso devo incluir o Atributo Código do
DVD, desta forma todo o DVD que entra na locadora terá um código diferente.
_DVD_
Título
Duração
Gênero
Autor
_DVD_
Cod DVD
Título
Duração
Gênero
Autor
19
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
10.3.5.
Chave Secundária ou Chave Estrangeira
Chave estrangeira (foreign key) é o campo que estabelece o relacionamento entre duas tabelas.
Assim, uma coluna corresponde à mesma coluna que é a chave primária de outra tabela. Dessa forma, devese especificar na tabela que contém a chave estrangeira quais são essas colunas e à qual tabela está
relacionada. O banco de dados irá verificar se todos os campos que fazem referências à tabela estão
especificados.
Determinar esse tipo de relacionamento fica garantida a integridade das informações. Os valores
presentes nas colunas definidas como chave estrangeira devem ter um correspondente em outra tabela, caso
contrário o bando de dados deve retornar uma mensagem de erro, assim as restrições de chave estrangeira
identificam os relacionamentos entre tabelas e assegura que a integridade referencial seja mantida.
Exemplo chaves estrangeiras do banco de dados LOCADORA:
DVD
Cod_DVD
Título
Duração
Gênero
Autor
EMPRESTIMO
Cod_Empr
Chave Estrangeira
Cod_Cli
da tabela CLIENTE
Data_Empr
Valor_Total
Chave Estrangeira
da tabela DVD
ITENS_EMPR
Cod_Empr
Cod_DVD
Valor_unit
l
CLIENTE
Cod_Cli
Nome
Telefone1
Telefone2
E-mail
Chave Estrangeira da
tabela EMPRÉSTIMO
10.4. Dicionário de Dados
No processo de análise de sistemas um dos pontos fortes é o MER – Modelo de Entidade e
Relacionamento, onde são definidas as entidades que irão compor o sistema e como elas irão relacionar-se.
Junto com o modelo de Entidade e relacionamento, é necessário que se mantenha um documento
com a explicação de todos os objetos nele criados. Este documento, que pode ser chamado de Dicionário
de Dados, permite que os analistas obtenham informações sobre todos os objetos do modelo de forma
textual, contendo explicações por vezes difíceis de incluir no diagrama. É válido lembrar que o objetivo do
documento é ser claro e consistente.
20
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Exemplos:
21
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
10.4.1.
1)
Atividade – Enxergando Entidades
Identifique as Entidades, Atributos e Chaves Primária de uma clinica médica.
Dados: Uma clinica médica precisa controlar as consultas médicas realizadas pelos médicos a ela
vinculados, assim como acompanhar quem são os pacientes atendidos para manter o acompanhamento
clinico dos mesmos.
Em entrevista realizada para construção do sistema, nos foi informado que:

Para cada médico a clínica mantém uma ficha com o número de CRM do médico, nome, endereço,
telefone, especialidade etc;

Para cada paciente existe um cadastro com os seus dados pessoais;

Toda consulta é registrada em um fichário próprio com informações sobre Data, médico, paciente,
diagnóstico etc.
22
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
10.5. Relacionamentos
São associações particulares dentro de um conjunto. Definimos RELACIONAMENTO como o fato, o
acontecimento que liga dois objetos, duas “coisas” existentes no mundo real.
Nenhuma informação armazenada no Banco de Dados existe isoladamente.
Todos os elementos pertencentes ao mundo real, de alguma forma está associado a outros
elementos. Normalmente essas associações representam ações físicas ou alguma forma de dependência
entre os elementos envolvidos.
Relacionamento: é a associação entre Entidades.
No DER, os relacionamentos são representados conforme mostra a figura:
10.6. Identificação de Entidade e Relacionamento
Agora que já temos as definições de Entidades e de Relacionamento, vamos aprender como
encontrá-los em um problema:
CLIENTE FAZ EMPRESTIMOS
SUBSTANTIVOS são as Entidades e os VERBOS são os Relacionamentos. Sendo assim tem-se:
Desta frase, o que é Entidade e o que é relacionamento?
Pode-se dizer que:
Entidades: Cliente e Empréstimo.
Relacionamento: Faz
23
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Considerando que estamos nos orientando para aplicações que serão desenvolvidas e administradas
por um SGBD, poderíamos estender o conceito, principalmente para ambientes relacionais, como sendo
relacionamento o fato que efetua a junção de duas ou mais tabelas de dados.
Outra exemplificação de um relacionamento:
Se temos dois objetos (no caso abaixo João e Maria), soltos no espaço, torna-se evidente, até este
instante, a inexistência de qualquer ligação entre os dois objetos.
Agora, na próxima figura, apenas com a inclusão de um verbo entre eles, passamos a contar com um
contexto de mais expressividade, ou seja, temos um maior conhecimento do ambiente.
As entidades do dia-a-dia não estão soltas, desligadas umas das outras, e sim relacionadas de forma
a mostrar a realidade com um conteúdo lógico.
Diariamente relatamos coisas do mundo real, e quando o fazemos, estamos na verdade expressando
entidades e relacionamentos, senão vejamos:
As pessoas Moram em Apartamentos;
Os Apartamentos Formam Condomínios;
Os condomínios Localizam-se em Ruas, ou Avenidas;
As Avenidas e Ruas Estão em uma Cidade.
24
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
MER - MODELAGEM DOS OBJETOS ACIMA:
Pessoas
Formam
Aptos
Moram
Condomínios
Localizam-se
Estão
Cidade
Ruas
DIAGRAMA DE INSTÂNCIAS
Quando existe o Relacionamento, deve ser especificado, qual aluno está relacionado à qual curso.
No caso abaixo os Alunos 1 e 2 estão matriculados no Curso 1(pode ser de Matemática) e o Aluno 4 está
matriculado no Curso 2(pode ser de História).
Diagrama de Instâncias
ALU1
ALU2
ALU3
ALU4
ALU5
ALU6
ENTIDADE ALUNO
Relacionamento Matriculado
CUR1
CUR2
CUR3
CUR4
CUR5
CUR6
ENTIDADE CURSOS
10.7. Grau de Relacionamento
O grau de relacionamento indica quantos conjuntos de entidades estão envolvidos neste
relacionamento. Exemplos:
Binário: Relacionamento entre 2 entidades.
Aluno
Matriculado
Curso
25
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Ternário: Relacionamento entre 3 entidades.
Professor
Aluno
Matriculado
Disciplina
10.8. Cardinalidade
É o número (mínimo, máximo) de ocorrências de uma entidade relacionada a outra, ou seja, a
quantidade de vezes que uma entidade pode está relacionada a outra.
10.8.1.
Exemplo: Como Determinar as Cardinalidades de um Relacionamento
Ternário
Para determinar as Cardinalidades, por exemplo das Entidades ALUNO-PROFESSOR-DISCIPLINA, faça o
seguinte:
1. Escolha uma Entidade, por exemplo ALUNO, e pergunte: Para cada Aluno, quantos pares ProfessorDisciplina eu tenho.
2. Coloque a resposta na Entidade ALUNO. Neste caso N. Isto é, um Professor lecionando uma Disciplina
pode ter vários Alunos.
3. Escolhendo a Entidade PROFESSOR. Pergunta-se: Para cada Professor, quantos pares Aluno-Disciplina
eu tenho.
4. Coloque a resposta na Entidade PROFESSOR. Neste caso 1. Isto é, um Aluno não pode ter em uma certa
Disciplina mais do que um Professor.
5. Escolhendo a Entidade DISCIPLINA. Pergunta-se: Para cada Disciplina, quantos pares Aluno-Professor
eu tenho.
6. Coloque a resposta na Entidade Disciplina. Neste caso N. Isto é, um Professor pode dar a um certo Aluno
mais do que uma Disciplina.
26
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Outros Exemplos
Domínio Escola:
Turma 1
N Alunos
Domínio Clube:
Sócio 1
1 Dependente
Domínio Escola:
Disciplina M
10.8.2.
N Aluno
Relacionamento de Um-para-Um
Neste grau de relacionamento, cada elemento de uma entidade relaciona-se com um e somente um
elemento de outra entidade.
No caso da figura abaixo, temos que uma ocorrência da entidade Homem relaciona-se com uma, e
somente uma, ocorrência da entidade Mulher, pois o casamento no Brasil ainda é monogâmico.
MULHER
HOMEM
CASADO
•X
•Y
•Z
•W
A•
B•
C•
D•
Devemos ler o relacionamento nos dois sentidos em que se efetua. Logo leremos no caso da
entidade Homem e da entidade Mulher, que um homem está casado somente com uma mulher e uma mulher
está casada somente com um homem.
SENTIDO DE LEITURA – IDENTICO RESULTADO = 1:1
HOMEM
HOMEM
1
1
CASADO
CASADO
1
1
MULHER
MULHER
27
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
10.8.3.
Relacionamento de Um-para-Muitos
Este grau de relacionamento é o mais comum no mundo real, sendo o que denominamos de
relacionamento básico entre entidades, entretanto possui características específicas, quanto ao sentido de
leitura dos fatos e sua interpretação.
Um elemento da entidade 1 relaciona-se com muitos elementos da entidade 2, mas cada elemento
da entidade 2 somente pode estar relacionado a um elemento da entidade 1.
Para ilustrar inicialmente este relacionamento, vamos nos deslocar até alguns países árabes, onde
um homem é casado com muitas mulheres, mas a recíproca não é verdadeira, pois uma mulher é casada
com um só homem.
MULHER
HOMEM
CASADO
•a
•b
•c
•d
•e
•f
A•
B•
C•
D•
SENTIDO DA LEITURA – RESULTADO = 1:N
HOMEM
HOMEM
1
1
CASADO
CASADO
N
1
MULHER
MULHER
Devemos ter como regra geral então, que um relacionamento é do tipo Um-Para-Muitos, quando um
sentido de leitura dos fatos nos apresenta este grau de Um-Para-Muitos e o sentido oposto apresenta
obrigatoriamente o grau Um-para-Um.
28
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
10.8.4.
Relacionamento de Muitos-para-Muitos
Identifica-se esta cardinalidade pelo fato de que em ambos os sentidos de leitura encontramos um
grau Um-para-Muitos.
Cursa/Matricula
Estudante
Disciplina
A•
B•
C•
D•
•X
•Y
•Z
•W
Um Estudante cursa várias disciplinas, apenas uma ou nenhuma.
Uma disciplina é cursada por muitos estudantes, apenas um ou nenhum.
Por isso além de ser
um relacionamento
N:M, ele também é
considerado
condicional.
No caso de relacionamentos N:M, normalmente são geradas outras entidades, que possuem
atributos que não pertencem a nenhuma das outras entidades. No exemplo acima pode ser gerado a
Entidade Matricula, na qual pode conter atributos como Data de Matricula ou turma onde o aluno cursa a
disciplina, além do cod. do estudante e do cod. Da matricula.
11.
NORMALIZAÇÃO DE DADOS
Normalização é um processo utilizado para acertar possíveis problemas estruturais das entidades e
relacionamentos com campos criados – também chamados de anomalias – em um modelo de entidade e
relacionamento. Consiste na análise dos atributos das entidades e relacionamentos com campos, sob o
ponto de vista das regras chamadas formas normais, que descrevem, com base na teoria de conjuntos, na
álgebra e no cálculo relacional, o que devemos ou não fazer nas estruturas das entidades e relacionamentos
de nosso modelo, baseados em conceitos matemáticos.
Essa análise pode demonstrar a necessidade de alterarmos a estrutura de nossas entidades e
relacionamentos com campos, dividindo ou agrupando seus atributos para aprimorar o processo de
recuperação das informações (performance) e seu armazenamento, de modo a evitar perda, redundância e
distorção da informação.
29
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Sempre que formos obrigados pela aplicação das formas normais em nosso modelo a dividir
entidades, temos que garantir que a divisão poderá ser revertida, isto é, que, mesmo particionada em duas
ou mais entidades, uma entidade poderá voltar à sua formação original, por meio de operações de conjuntos.
11.1. Primeira Forma Normal (1NF )
Uma entidade está em Primeira Forma Normal, se e somente todos os seus atributos são atômicos, isto é, se
contém um valor único (atômico) e não contém atributos multivalorados.
Exemplo:
Dada a entidade funcionário, definida com os atributos abaixo:
Funcionario(codigo,nome,data_admissao,data_demissao,habilidades)
Vemos que a entidade funcionario possui o campo multivalorado habilidades, o que não é permitido
pela Primeira Forma Normal. Devemos então dividir a tabela funcionário de forma que o campo habilidades
se torne uma nova entidade.
Então teremos:
Funcionario(codigo,nome,data_admissao,data_demissao)
Possui(cod_funcionario,cod_habilidade)
Habilidade(codigo,descricao)
Exemplo:
Fornecedor(codigo,nome,endereco,telefones)
Vemos que a entidade fornecedor tem como atributo composto endereço e como atributo
multivalorado telefones.
Em relação ao atributo composto endereco, sabemos que o mesmo é composto, pois nele
pressupõe-se incluir as informações de rua, complemento, bairro, cidade, estado e cep . Ou substituímos o
atributo endereco por seus atributos componentes (rua, complemento, bairro, cidade, estado e cep ) ou
criamos uma outra entidade com o nome do atributo composto (endereco), tendo como atributos dessa nova
entidade rua, complemento, bairro cidade, estado e cep .
30
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Já o campo telefones, por estar no plural, indica que nele poderá ser armazenado mais de um
número. Pela regra, esse atributo precisa ser separado em outra entidade, que pode ser chamada de
telefone e que conterá os diversos números de telefone do fornecedor.
Assim, temos:
Fornecedor(codigo,nome,rua,complemento,bairro,cidade,estado,cep)
Tendo como chave primária o atributo codigo.
Telefone(cod_fornecedor,nro telefone)
Tendo como chave primária os atributos cod_fornecedor e nro_telefone, já que isso garante que não
será cadastrado o mesmo telefone para o forncedor e como chave estrangeira o atributo cod_fornecedor.
Fornecedor(codigo,nome)
Tendo como chave primária o atributo código.
Endereco(cod_fornecedor,rua,complemento,bairro,cidade,estado,cep).
Tendo como chave primária o atributo cod_fornecedor e como chave estrangeira o atributo
cod_fornecedor.
11.2. Segunda Forma Normal (2NF )
Uma entidade encontra-se em Segunda Forma Normal se e somente estiver em Primeira Forma
Normal e não tiver atributos com dependências parciais. No caso de uma chave primária composta, isto é,
que possui mais de um atributo em sua composição, é denominada dependência parcial a dependência de
um atributo não chave a apenas uma parte da chave primária.
Tomemos como exemplo a tabela compra, descrita abaixo:
Compra(nro_nf,cod_fornecedor,cod_produto,data,nome produto,
quantidade,valor_unitario,valor_total_nota)
Tendo como chave primária os atributos: nro_nf, cod_fornecedor, cod_produto
31
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Se analisarmos a dependência funcional teremos:
nro_nf,cod_fornecedor  data
nro_nf,cod_produto  quantidade
nro_nf,cod_produto  valor_unitario
nro_nf,cod_fornecedor  valor_total_nota
cod_produto  nome_produto
Vemos agora que nem todos os atributos dependem da chave primária. O que não é permitido pela
Segunda Forma Normal. Para que essa entidade fique em 2NF, teremos de desmembrá-la.
Ela ficará assim:
Compra(nro_nf,cod_fornecedor,data,valor_total_nota)
Tendo como chave primária os atributos nro_nf cod_fornecedor e como chave estrangeira o atributo
cod_fornecedor.
Item_compra(nro_nf,cod_produto,quantidade,vl_unitario)
Tendo como chave primária os atributos nro_nf e cod_produto e como chaves estrangeiras os
atributos nro_nf e cod_produto.
Produto(codigo,nome)
Tendo como chave primária o atributo codigo.
11.3. Terceira Forma Normal (3NF )
Uma entidade está em Terceira Forma Normal se e somente estiver em Primeira e em Segunda
Forma Normal e todos os atributos não chave dependerem funcionalmente da chave primária.
Exemplo:
Pedido(nro_pedido,data,cod_cliente,nome_cliente,ema i l_
cliente,valor_total_pedido)
32
CURSO: Ensino Médido Integrado ao Técnico em Informática para Internet
COMPONENTE CURRICULAR: Tecnologia e Linguagens de Banco de Dados I _______ PROFESSORA: CÍNTIA PINHO
Vamos verificar a dependência funcional dos atributos:
nro_pedido  data
nro_pedido  cod_cliente
nro_pedido  valor_total_pedido
cod_cliente  nome_cliente
cod_cliente  email_cliente
Verificamos que os atributos nome_cliente e email_cliente não são dependentes da chave primária e
sim do atributo cod_cliente. Será necessário então desmembrar a entidade pedido.
Pedido(nro_pedido,data,cod_cliente,valor_total_pedido)
Que terá como chave primária o atributo nro_pedido.
Cliente(cod_cliente,nome_cliente,email_cliente)
Que terá como chave primária o atributo cod_cliente.
33
Download

Apostila de apoio bd - Professor Jose Alves