SlideShare uma empresa Scribd logo
1 de 37
Banco de Dados
Jorge Ávila
Modelo Relacional
 O modelo Relacional é um modelo lógico,

utilizado em bancos de dados relacionais. Ele
tem por finalidade representar os dados como
uma coleção de tabelas e cada linha (tupla) de
uma tabela representa uma coleção de dados
relacionados. Neste modelo, começamos a nos
preocupar em como os dados devem ser
armazenados e em como criaremos os
relacionamentos do modelo conceitual. É
também nessa etapa que definimos o SGBD que
será utilizado, bem como os tipos de dados para
cada atributo. O modelo Relacional é definido
usando como base o MER.
Modelo Relacional
 O Modelo Relacional representa os dados num

Banco de Dados como uma coleção de tabelas
e seus relacionamentos. Cada tabela contém
um nome e um conjunto de atributos com seus
respectivos nomes. Por exemplo, podemos ter a
tabela tbAluno, para guardar todos os dados do
aluno como:
 matricula, nome, data de nascimento. Esses dados

que são armazenados são os atributos do aluno
como já visto anteriormente.
Modelo Relacional
 No modelo relacional os atributos precisam ter

um domínio definido, ou seja, precisamos
especificar todos os valores possíveis que um
atributo pode receber.
 O domínio de um atributo define qual o tipo de
dado e o formato que o dado pode ser
armazenado por aquele atributo, por exemplo, no
atributo matrícula podem ser guardados valores
inteiros, no atributo nome podem ser guardados
até 100 caracteres, no atributo data pode ser
guardado uma data no formato “dd/mm/aaaa”.
Modelo Relacional
 As tuplas representam os valores de uma tabela.

A Figura abaixo mostra a tabela tbAluno
preenchida com valores hipotéticos. Note que as
colunas da tabela representam os atributos,
enquanto as linhas representam os registros. Se
uma tabela não tiver tuplas, ela estará vazia, ou
seja, sem dados. Informalmente, as tuplas são
também chamadas de registros pelos
desenvolvedores.
Modelo Relacional
 Para descrever uma tabela no modelo relacional,

usamos o nome da tabela seguida dos atributos
entre parênteses. Para identificar a chave
primária, devem-se sublinhar o(s) atributo(s)
correspondente(s) a ela. O tipo de cada atributo
também deve aparecer no modelo relacional,
como mostra o exemplo abaixo:
Modelo Relacional
 Podemos também criar um diagrama lógico para

representar este modelo. Nesta apostila para a
criação do modelo lógico do banco de dados
utilizaremos a ferramenta MySQL Workbench,
uma ferramenta disponibilizada pela Oracle para
modelagem lógica de Banco de Dados e que
você pode fazer o download no site:
http://dev.mysql.com/downloads/tools/workbench/
.
Modelo Relacional
 Antes de criarmos nossa representação da tabela

aluno utilizando o workbench, vamos
primeiramente vamos abrir o programa. A figura
abaixo mostra a tela inicial do MySQL
Workbench.
Modelo Relacional
 Para começar, vamos escolher a opção “File New

Model”. Escolhendo essa opção, avançamos
para uma próxima tela, na qual temos a opção
“Add Diagram‟. Essa tela pode ser visualizada
pela Figura 5.2.
Modelo Relacional
Modelo Relacional
 Clicando duas vezes em „Add Diagram‟, abrimos

nossa área para criarmos o Modelo de
Relacional.
Modelo Relacional
 Pronto, agora você já pode criar o seu diagrama

lógico utilizando o”MySQL Workbench‟. Para
exemplificar, vamos mostrar como criar uma
tabela e definir seus atributos. Para começar,
vamos definir a tabela Aluno usando a ferramenta
“MySQL Workbench‟. Na Figura 5.3, temos o
ambiente da ferramenta onde iremos criar nosso
Modelo Relacional. O modelo é criado na parte
branca que ocupa a maior parte do lado inferior
direito da ferramenta.
Modelo Relacional
 Na barra mostrada pela Figura 5.4, podemos ver

vários ícones. Para criar uma tabela, você deve
clicar no ícone “place a new table” e depois clicar
na parte branca situada logo a direita da barra
mostrada na Figura 5.4.
Modelo Relacional
 Ao clicar com o botão direito do

mouse em cima da tabela
criada, você irá ver a opção
“Edit Table‟. Quando clicar
nessa opção, vai aparecer, na
parte inferior da tela, uma aba
onde existe a opção “Table‟.
Nessa aba, você irá ver um
campo de texto com nome
“Name” onde colocamos o
nome da tabela. Note que
“Table” em inglês equivale à
tabela em português. Para o
nosso exemplo, você deve
fornecer o nome tbAluno. Ao
final dessa operação, você deve
Modelo Relacional
 Agora, devemos definir os atributos da tabela.

Para isso, devemos clicar na aba inferior
chamada “Columns‟. Você deve informar o nome
do atributo e o tipo em cada linha da tabela. Note
que ao clicar na aba “Columns‟ o MySQL
Workbench cria automaticamente um atributo
com nome “idtbAluno” com tipo INT.
Modelo Relacional
 Para criar um atributo com nome e tipo desejado,

você deve clicar duas vezes em cima da linha
onde está o nome do atributo “idtbAluno”.
Quando o cursor ficar como o mostrado na
Figura 5.7, você pode digitar o nome do atributo
desejado.
Modelo Relacional
 Para o nosso exemplo, você deve digitar

“matricula_aluno”. Para criar outro atributo, você
precisa apenas clicar duas vezes na linha abaixo
do atributo criado. Tente repetir essa operação
para criar os atributos:
 nome_aluno, data_nasc_aluno.

 Depois de definir o nome dos atributos, você

precisa definir os tipos de cada um. Para definir o
tipo de cada atributo, você deve clicar na coluna
“Datatype” de cada atributo. Ao clicar, irá
aparecer uma lista com várias opções de tipos
suportadas pelo MySQL.
Modelo Relacional
 Você deve definir os tipos de modo que o seu

modelo fique parecido como o mostrado na
Figura 5.8. Note que os tipos dos atributos
suportados variam entre os SGBDs. No caso do
MySQL, os principais tipos suportados são:
Modelo Relacional
Chave Primária
 Para inserirmos a chave primária, temos que

marcá-la, na Figura 14 há vários quadradinhos
ao lado de cada atributo com algumas opções,
vamos marcar a opção PK, que é a nossa chave
primária. O termo PK vem do inglês “Primary
Key”, que em português quer dizer chave
primaria.
Chave Estrangeira
 Um conceito muito importante quando se fala em

modelo relacional é o conceito de Chave Estrangeira
(Foreign Key - FK).
 Uma chave estrangeira é um atributo da tabela, que
faz referencia a uma chave primaria de outra tabela
ou da própria tabela. Suponha que tenhamos as
tabelas “Turma” e “Aluno”, representadas no modelo
relacional a seguir. Observe que a tabela tbAluno
possui um atributo código_turma. Esse atributo é
chave primária na tabela tbTurma e, portanto, é uma
chave estrangeira na tabela tbAluno. O atributo que é
chave estrangeira deve ser do mesmo tipo e do
mesmo tamanho que sua primária correspondente. É
importante deixar explicito a qual tabela a chave
Chave Estrangeira
Chave Estrangeira
 Uma chave estrangeira sempre faz referencia a

uma chave primária. A chave estrangeira nunca
fará referencia a um atributo que não seja uma
chave primária.
 No Modelo Relacional é a chave estrangeira que
especifica o relacionamento entre as tabelas. É
através da chave estrangeira que conseguimos
descobrir, por exemplo, que o aluno João
pertence a turma do 2º ano do Curso Técnico em
Informática, como mostrado abaixo.
Chave Estrangeira
Chave Estrangeira
 O valor da chave estrangeira deve ser um valor

que já tenha sido cadastrado na chave primária
da tabela correspondente, ou um valor nulo. No
exemplo acima, não poderia cadastrar uma aluna
Maria pertencente à turma de código 9, uma vez
que não existe nenhum código 9 cadastrado na
tbTurma.
 A chave estrangeira garante a integridade
referencial do modelo relacional, ou seja, ela
garante que não se faça referencia a valores que
não existam na base de dados, evitando assim
inconsistências.
Chave Estrangeira
 Uma chave estrangeira pode também fazer

referencia a uma chave primária dentro da
mesma tabela. Isso acontece quando temos um
autorelacionamento. Por exemplo:
Chave Estrangeira
 Bom, vamos aprender

agora como inserimos
nossa chave
estrangeira utilizando
a ferramenta “MySql
Workbench‟. Primeiro
devemos criar nossa
tabela tbTurma.
Depois inserir na
tabela tbAluno, o
atributo que vai fazer
referencia a tabela
tbTurma. Inicialmente
ficaremos como o
diagrama como
mostrado na figura
Chave Estrangeira
 Agora com a tabela tbAluno selecionada,

clicamos na aba “Foreign Keys” e definir o nome
da chave estrangeira no campo “Foreign Key
name.
 Depois disso, você deve informar qual tabela
(“Referenced Table”) essa chave estrangeira irá
se referenciar. No nosso caso, a tabela
referenciada é a tabela tbTurma. Para finalizar,
você deve informar qual atributo da tabela
tbTurma será utilizada para controlar a
integridade da tabela tbAluno. Nesse caso, você
deve marcar o atributo código_turma.
Chave Estrangeira
Exercício
 O que é um auto-relacionamento? Cite um

exemplo diferente da apostila que caracteriza
este relacionamento.
 O que é especialização e generalização? Cite um
exemplo.
 O que caracteriza a agregação?
 O que é um relacionamento mutuamente
exclusivo?
Exercício
 Faça o DER dos sistemas abaixo:

 “Uma concessionária que trabalha com venda de veículos

deseja criar uma base de dados para seu negócio. Para
qualquer veículo, sabemos o número do chassi, número
da placa, cor, ano de fabricação, quilometragem, código
da marca, nome da marca, código do modelo, e nome do
modelo. Todo carro pertence a um modelo, e este modelo
pertence a uma marca. Como a concessionária vende
veículos usados de diferentes marcas, é interessante
haver um cadastro para as marcas e um cadastro para os
modelos. Uma pessoa pode assumir um dos seguintes
papeis em relação a concessionária:
corretor ou comprador. Sobre o comprador do veículo, tem-se CPF,
nome, estado civil, e se for casado, os dados do cônjuge(como
nome e CPF). Sobre os corretores, tem-se numero da matricula,
nome e data de admissão. Um corretor negocia com um comprador
a venda de um veículo. Sobre a venda, são necessárias as
seguintes informações: data da venda, valor da venda e valor da
comissão do corretor.”
Exercício
 O que é cardinalidade? Qual a diferença entre

cardinalidade mínima e máxima?
 O que determina o grau de um relacionamento?
 O que é uma entidade fraca?
 Nos diagramas abaixo, para cada entidade defina no
mínimo 3 atributos, sua chave primária e a
cardinalidade dos relacionamentos:
Exercício
 Desenhe o diagrama das situações abaixo, definindo

no mínimo 3 atributos para cada entidade, a chave
primária e a cardinalidade do relacionamento.
a) Uma universidade tem muitos estudantes e um
estudante pode se
dedicar a no máximo uma universidade.
b) Uma aeronave pode ter muitos passageiros, mas um
passageiro só
pode estar em um vôo de cada vez.
c) Um paciente pode ter muitos médicos e um médico
muitos pacientes.
d) Uma nação possui vários estados, e um estado, muitas
cidades. Um
estado só poderá estar vinculado a uma nação e uma
Exercício
 O que é o Modelo Relacional?
 O que são as tabelas no modelo relacional? O

que representam as colunas e as tuplas?
 O que você entende por Domínio de um atributo?
 Para que servem as chaves primárias e
estrangeiras?
 Qual a relação do modelo EntidadeRelacionamento com o Modelo Relacional?
Exercício
 Crie as tabelas abaixo, seguindo o modelo

relacional.
 a. Departamento com atributos: Nome, Número,

Localização.
 b. Empregado com atributos: Matricula, Nome,
Sexo, Endereço, DataNascimento
 c. Dependente com atributos: Nome, sexo,
DataNascimento e Parentesco.
 Relacione as tabelas da questão anterior

utilizando chave estrangeira.
jorgeavila11.wordpress.com
Gostou ?
Compartilha...

Mais conteúdo relacionado

Mais procurados

Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Leinylson Fontinele
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraNatanael Simões
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Leinylson Fontinele
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Leinylson Fontinele
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade RelacionamentoCris Fidelix
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalDaniel Brandão
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem Cprofjr
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 

Mais procurados (20)

Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Aula 5 banco de dados
Aula 5   banco de dadosAula 5   banco de dados
Aula 5 banco de dados
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
03 mer2
03 mer203 mer2
03 mer2
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Bases De Dados
Bases De DadosBases De Dados
Bases De Dados
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
Uml
UmlUml
Uml
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e MatrizesAlgoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - Relacional
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem C
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Modelagem de dados
Modelagem de dados Modelagem de dados
Modelagem de dados
 

Destaque (20)

Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Aula 6 banco de dados
Aula 6   banco de dadosAula 6   banco de dados
Aula 6 banco de dados
 
Aula 2 banco de dados
Aula 2   banco de dadosAula 2   banco de dados
Aula 2 banco de dados
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 
Aula 1
Aula 1Aula 1
Aula 1
 
Aula 12 banco de dados
Aula 12   banco de dadosAula 12   banco de dados
Aula 12 banco de dados
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Exercícios de relacionamento 2012
Exercícios de relacionamento 2012Exercícios de relacionamento 2012
Exercícios de relacionamento 2012
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Banco de dados Aula 1
Banco de dados Aula 1Banco de dados Aula 1
Banco de dados Aula 1
 
Aula03
Aula03Aula03
Aula03
 
Diagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados IDiagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados I
 
Apostila banco de dados
Apostila banco de dadosApostila banco de dados
Apostila banco de dados
 
Aula- Virtualização
Aula- VirtualizaçãoAula- Virtualização
Aula- Virtualização
 
Exercicio banco de_dados
Exercicio banco de_dadosExercicio banco de_dados
Exercicio banco de_dados
 
Roteiro aulabrofficebase
Roteiro aulabrofficebaseRoteiro aulabrofficebase
Roteiro aulabrofficebase
 

Semelhante a Aula 9 banco de dados

Semelhante a Aula 9 banco de dados (20)

Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Aula1
Aula1Aula1
Aula1
 
13 subtipos-curso gxxbr
13 subtipos-curso gxxbr13 subtipos-curso gxxbr
13 subtipos-curso gxxbr
 
Planilha Eletrônica BrOffice CALC
Planilha Eletrônica BrOffice CALCPlanilha Eletrônica BrOffice CALC
Planilha Eletrônica BrOffice CALC
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacional
 
introdução ao enterprise architect
introdução ao enterprise architectintrodução ao enterprise architect
introdução ao enterprise architect
 
Aula Modelo Relacional
Aula Modelo RelacionalAula Modelo Relacional
Aula Modelo Relacional
 
Calc
CalcCalc
Calc
 
Metadados - Totvs RM.pdf
Metadados - Totvs RM.pdfMetadados - Totvs RM.pdf
Metadados - Totvs RM.pdf
 
Cap05
Cap05Cap05
Cap05
 
Cap05
Cap05Cap05
Cap05
 
Cap05
Cap05Cap05
Cap05
 
Dicas Excel
Dicas ExcelDicas Excel
Dicas Excel
 
Aula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrõesAula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrões
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dados
 
Slides Calc
Slides CalcSlides Calc
Slides Calc
 
Aula de Reforço Access
Aula de Reforço Access Aula de Reforço Access
Aula de Reforço Access
 

Mais de Jorge Ávila Miranda (20)

Aula16 - Jquery
Aula16 - JqueryAula16 - Jquery
Aula16 - Jquery
 
Aula15 - Array PHP
Aula15 - Array PHPAula15 - Array PHP
Aula15 - Array PHP
 
Aula13 - Estrutura de repetição (for e while) - PHP
Aula13 - Estrutura de repetição (for e while) - PHPAula13 - Estrutura de repetição (for e while) - PHP
Aula13 - Estrutura de repetição (for e while) - PHP
 
Aula14 - Funções em PHP
Aula14 - Funções em PHPAula14 - Funções em PHP
Aula14 - Funções em PHP
 
Aula Herança
Aula HerançaAula Herança
Aula Herança
 
Aula05 - Poojava
Aula05 - PoojavaAula05 - Poojava
Aula05 - Poojava
 
Aula12- PHP
Aula12- PHPAula12- PHP
Aula12- PHP
 
Aula11 - PHP
Aula11 - PHPAula11 - PHP
Aula11 - PHP
 
Aula10 -PHP
Aula10 -PHPAula10 -PHP
Aula10 -PHP
 
Aula09 - Java Script
Aula09 - Java ScriptAula09 - Java Script
Aula09 - Java Script
 
Aula08 - Java Script
Aula08 - Java ScriptAula08 - Java Script
Aula08 - Java Script
 
Aula07 - JavaScript
Aula07 - JavaScriptAula07 - JavaScript
Aula07 - JavaScript
 
Aula04-POOJAVA
Aula04-POOJAVAAula04-POOJAVA
Aula04-POOJAVA
 
Aula06 - JavaScript
Aula06 - JavaScriptAula06 - JavaScript
Aula06 - JavaScript
 
Aula05-JavaScript
Aula05-JavaScriptAula05-JavaScript
Aula05-JavaScript
 
Aula04-JavaScript
Aula04-JavaScriptAula04-JavaScript
Aula04-JavaScript
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
Aula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de ComputadoresAula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de Computadores
 

Aula 9 banco de dados

  • 2. Modelo Relacional  O modelo Relacional é um modelo lógico, utilizado em bancos de dados relacionais. Ele tem por finalidade representar os dados como uma coleção de tabelas e cada linha (tupla) de uma tabela representa uma coleção de dados relacionados. Neste modelo, começamos a nos preocupar em como os dados devem ser armazenados e em como criaremos os relacionamentos do modelo conceitual. É também nessa etapa que definimos o SGBD que será utilizado, bem como os tipos de dados para cada atributo. O modelo Relacional é definido usando como base o MER.
  • 3. Modelo Relacional  O Modelo Relacional representa os dados num Banco de Dados como uma coleção de tabelas e seus relacionamentos. Cada tabela contém um nome e um conjunto de atributos com seus respectivos nomes. Por exemplo, podemos ter a tabela tbAluno, para guardar todos os dados do aluno como:  matricula, nome, data de nascimento. Esses dados que são armazenados são os atributos do aluno como já visto anteriormente.
  • 4. Modelo Relacional  No modelo relacional os atributos precisam ter um domínio definido, ou seja, precisamos especificar todos os valores possíveis que um atributo pode receber.  O domínio de um atributo define qual o tipo de dado e o formato que o dado pode ser armazenado por aquele atributo, por exemplo, no atributo matrícula podem ser guardados valores inteiros, no atributo nome podem ser guardados até 100 caracteres, no atributo data pode ser guardado uma data no formato “dd/mm/aaaa”.
  • 5. Modelo Relacional  As tuplas representam os valores de uma tabela. A Figura abaixo mostra a tabela tbAluno preenchida com valores hipotéticos. Note que as colunas da tabela representam os atributos, enquanto as linhas representam os registros. Se uma tabela não tiver tuplas, ela estará vazia, ou seja, sem dados. Informalmente, as tuplas são também chamadas de registros pelos desenvolvedores.
  • 6. Modelo Relacional  Para descrever uma tabela no modelo relacional, usamos o nome da tabela seguida dos atributos entre parênteses. Para identificar a chave primária, devem-se sublinhar o(s) atributo(s) correspondente(s) a ela. O tipo de cada atributo também deve aparecer no modelo relacional, como mostra o exemplo abaixo:
  • 7. Modelo Relacional  Podemos também criar um diagrama lógico para representar este modelo. Nesta apostila para a criação do modelo lógico do banco de dados utilizaremos a ferramenta MySQL Workbench, uma ferramenta disponibilizada pela Oracle para modelagem lógica de Banco de Dados e que você pode fazer o download no site: http://dev.mysql.com/downloads/tools/workbench/ .
  • 8. Modelo Relacional  Antes de criarmos nossa representação da tabela aluno utilizando o workbench, vamos primeiramente vamos abrir o programa. A figura abaixo mostra a tela inicial do MySQL Workbench.
  • 9. Modelo Relacional  Para começar, vamos escolher a opção “File New Model”. Escolhendo essa opção, avançamos para uma próxima tela, na qual temos a opção “Add Diagram‟. Essa tela pode ser visualizada pela Figura 5.2.
  • 11. Modelo Relacional  Clicando duas vezes em „Add Diagram‟, abrimos nossa área para criarmos o Modelo de Relacional.
  • 12. Modelo Relacional  Pronto, agora você já pode criar o seu diagrama lógico utilizando o”MySQL Workbench‟. Para exemplificar, vamos mostrar como criar uma tabela e definir seus atributos. Para começar, vamos definir a tabela Aluno usando a ferramenta “MySQL Workbench‟. Na Figura 5.3, temos o ambiente da ferramenta onde iremos criar nosso Modelo Relacional. O modelo é criado na parte branca que ocupa a maior parte do lado inferior direito da ferramenta.
  • 13. Modelo Relacional  Na barra mostrada pela Figura 5.4, podemos ver vários ícones. Para criar uma tabela, você deve clicar no ícone “place a new table” e depois clicar na parte branca situada logo a direita da barra mostrada na Figura 5.4.
  • 14. Modelo Relacional  Ao clicar com o botão direito do mouse em cima da tabela criada, você irá ver a opção “Edit Table‟. Quando clicar nessa opção, vai aparecer, na parte inferior da tela, uma aba onde existe a opção “Table‟. Nessa aba, você irá ver um campo de texto com nome “Name” onde colocamos o nome da tabela. Note que “Table” em inglês equivale à tabela em português. Para o nosso exemplo, você deve fornecer o nome tbAluno. Ao final dessa operação, você deve
  • 15. Modelo Relacional  Agora, devemos definir os atributos da tabela. Para isso, devemos clicar na aba inferior chamada “Columns‟. Você deve informar o nome do atributo e o tipo em cada linha da tabela. Note que ao clicar na aba “Columns‟ o MySQL Workbench cria automaticamente um atributo com nome “idtbAluno” com tipo INT.
  • 16. Modelo Relacional  Para criar um atributo com nome e tipo desejado, você deve clicar duas vezes em cima da linha onde está o nome do atributo “idtbAluno”. Quando o cursor ficar como o mostrado na Figura 5.7, você pode digitar o nome do atributo desejado.
  • 17. Modelo Relacional  Para o nosso exemplo, você deve digitar “matricula_aluno”. Para criar outro atributo, você precisa apenas clicar duas vezes na linha abaixo do atributo criado. Tente repetir essa operação para criar os atributos:  nome_aluno, data_nasc_aluno.  Depois de definir o nome dos atributos, você precisa definir os tipos de cada um. Para definir o tipo de cada atributo, você deve clicar na coluna “Datatype” de cada atributo. Ao clicar, irá aparecer uma lista com várias opções de tipos suportadas pelo MySQL.
  • 18. Modelo Relacional  Você deve definir os tipos de modo que o seu modelo fique parecido como o mostrado na Figura 5.8. Note que os tipos dos atributos suportados variam entre os SGBDs. No caso do MySQL, os principais tipos suportados são:
  • 20. Chave Primária  Para inserirmos a chave primária, temos que marcá-la, na Figura 14 há vários quadradinhos ao lado de cada atributo com algumas opções, vamos marcar a opção PK, que é a nossa chave primária. O termo PK vem do inglês “Primary Key”, que em português quer dizer chave primaria.
  • 21. Chave Estrangeira  Um conceito muito importante quando se fala em modelo relacional é o conceito de Chave Estrangeira (Foreign Key - FK).  Uma chave estrangeira é um atributo da tabela, que faz referencia a uma chave primaria de outra tabela ou da própria tabela. Suponha que tenhamos as tabelas “Turma” e “Aluno”, representadas no modelo relacional a seguir. Observe que a tabela tbAluno possui um atributo código_turma. Esse atributo é chave primária na tabela tbTurma e, portanto, é uma chave estrangeira na tabela tbAluno. O atributo que é chave estrangeira deve ser do mesmo tipo e do mesmo tamanho que sua primária correspondente. É importante deixar explicito a qual tabela a chave
  • 23. Chave Estrangeira  Uma chave estrangeira sempre faz referencia a uma chave primária. A chave estrangeira nunca fará referencia a um atributo que não seja uma chave primária.  No Modelo Relacional é a chave estrangeira que especifica o relacionamento entre as tabelas. É através da chave estrangeira que conseguimos descobrir, por exemplo, que o aluno João pertence a turma do 2º ano do Curso Técnico em Informática, como mostrado abaixo.
  • 25. Chave Estrangeira  O valor da chave estrangeira deve ser um valor que já tenha sido cadastrado na chave primária da tabela correspondente, ou um valor nulo. No exemplo acima, não poderia cadastrar uma aluna Maria pertencente à turma de código 9, uma vez que não existe nenhum código 9 cadastrado na tbTurma.  A chave estrangeira garante a integridade referencial do modelo relacional, ou seja, ela garante que não se faça referencia a valores que não existam na base de dados, evitando assim inconsistências.
  • 26. Chave Estrangeira  Uma chave estrangeira pode também fazer referencia a uma chave primária dentro da mesma tabela. Isso acontece quando temos um autorelacionamento. Por exemplo:
  • 27. Chave Estrangeira  Bom, vamos aprender agora como inserimos nossa chave estrangeira utilizando a ferramenta “MySql Workbench‟. Primeiro devemos criar nossa tabela tbTurma. Depois inserir na tabela tbAluno, o atributo que vai fazer referencia a tabela tbTurma. Inicialmente ficaremos como o diagrama como mostrado na figura
  • 28. Chave Estrangeira  Agora com a tabela tbAluno selecionada, clicamos na aba “Foreign Keys” e definir o nome da chave estrangeira no campo “Foreign Key name.  Depois disso, você deve informar qual tabela (“Referenced Table”) essa chave estrangeira irá se referenciar. No nosso caso, a tabela referenciada é a tabela tbTurma. Para finalizar, você deve informar qual atributo da tabela tbTurma será utilizada para controlar a integridade da tabela tbAluno. Nesse caso, você deve marcar o atributo código_turma.
  • 30. Exercício  O que é um auto-relacionamento? Cite um exemplo diferente da apostila que caracteriza este relacionamento.  O que é especialização e generalização? Cite um exemplo.  O que caracteriza a agregação?  O que é um relacionamento mutuamente exclusivo?
  • 31. Exercício  Faça o DER dos sistemas abaixo:  “Uma concessionária que trabalha com venda de veículos deseja criar uma base de dados para seu negócio. Para qualquer veículo, sabemos o número do chassi, número da placa, cor, ano de fabricação, quilometragem, código da marca, nome da marca, código do modelo, e nome do modelo. Todo carro pertence a um modelo, e este modelo pertence a uma marca. Como a concessionária vende veículos usados de diferentes marcas, é interessante haver um cadastro para as marcas e um cadastro para os modelos. Uma pessoa pode assumir um dos seguintes papeis em relação a concessionária: corretor ou comprador. Sobre o comprador do veículo, tem-se CPF, nome, estado civil, e se for casado, os dados do cônjuge(como nome e CPF). Sobre os corretores, tem-se numero da matricula, nome e data de admissão. Um corretor negocia com um comprador a venda de um veículo. Sobre a venda, são necessárias as seguintes informações: data da venda, valor da venda e valor da comissão do corretor.”
  • 32. Exercício  O que é cardinalidade? Qual a diferença entre cardinalidade mínima e máxima?  O que determina o grau de um relacionamento?  O que é uma entidade fraca?  Nos diagramas abaixo, para cada entidade defina no mínimo 3 atributos, sua chave primária e a cardinalidade dos relacionamentos:
  • 33. Exercício  Desenhe o diagrama das situações abaixo, definindo no mínimo 3 atributos para cada entidade, a chave primária e a cardinalidade do relacionamento. a) Uma universidade tem muitos estudantes e um estudante pode se dedicar a no máximo uma universidade. b) Uma aeronave pode ter muitos passageiros, mas um passageiro só pode estar em um vôo de cada vez. c) Um paciente pode ter muitos médicos e um médico muitos pacientes. d) Uma nação possui vários estados, e um estado, muitas cidades. Um estado só poderá estar vinculado a uma nação e uma
  • 34. Exercício  O que é o Modelo Relacional?  O que são as tabelas no modelo relacional? O que representam as colunas e as tuplas?  O que você entende por Domínio de um atributo?  Para que servem as chaves primárias e estrangeiras?  Qual a relação do modelo EntidadeRelacionamento com o Modelo Relacional?
  • 35. Exercício  Crie as tabelas abaixo, seguindo o modelo relacional.  a. Departamento com atributos: Nome, Número, Localização.  b. Empregado com atributos: Matricula, Nome, Sexo, Endereço, DataNascimento  c. Dependente com atributos: Nome, sexo, DataNascimento e Parentesco.  Relacione as tabelas da questão anterior utilizando chave estrangeira.