Modelagem de
Banco de Dados
▪ Revisão
Modelo Relacional
Tem por base a teoria dos conjuntos e álgebra relacional;
Revelou-se ser o mais flexível e adequado ao solucionar
os vários problemas que se colocam no nível da
concepção e implementação da base de dados;
A estrutura fundamental do modelo relacional é a
relação (tabela):
◦ Uma relação (tabela) é constituída por um ou mais atributos
(campos) que, juntos, representam uma entidade (registro);
◦ Cada atributo da entidade é chamada de campo
◦ O conjunto de atributos que define uma entidade é chamada de
registro.
Modelos de Dados: relacional
Cliente
Cod_cliente Nome Rua Cidade
01 José Av. Pio XI São Paulo
02 Maria R. São Francisco Recife
03 Gabriela R. do Sol Maceió
Conta
Cod_conta Saldo
900 55,00
556 100.000,00
647 105.366,00
801 744,00Cliente_Conta
Cod_cliente Cod_conta
01 900
02 556
02 647
03 647
03 801
Nome Endereço Cidade Conta Saldo
José Av. Pio XI São Paulo 900 55,00
Maria R. São Francisco Recife 556 100.000,00
Maria R. São Francisco Recife 647 105.366,00
Gabriela R. do Sol Maceió 801 744,00
Gabriela R. do Sol Maceió 647 105.366,00
Cliente
Modelagem
Conceitual
Modelagem Conceitual
Modelagem Conceitual:entidade
Pode representar tanto objetos concretos (uma
pessoa, um automóvel) quanto objetos abstratos
(um departamento, uma venda);
É representada através de um retângulo com o
nome da entidade.
Livro Editora EmpréstimoReserva
Modelagem Conceitual:relacionamento
Conjunto de associações entre entidades;
É representado através de um losango ligado por
linhas aos retângulos das entidades que
participam do relacionamento;
ALUNOCURSO Matrícula
PACIENTEMÉDICO Consulta
Modelagem Conceitual:cardinalidade
Número de ocorrências das entidades associadas
em um relacionamento.
Quantas ocorrências de uma entidade podem
estar associadas a uma determinada ocorrência
de outra entidade através do relacionamento?
Empresa Departamentopossuin
Uma ocorrência de DEPARTAMENTO
pode estar associada ao no máximo 1
ocorrência de EMPRESA
1
A uma ocorrência de EMPRESA pode
estar associada várias (n) ocorrências
de DEPARTAMENTO
Modelagem Conceitual: relacionamentos 1 para n
Departamento Funcionáriopossuin1
Modelagem Conceitual: relacionamentos n para n
Médico Pacienteconsultan n
Livro Autorautorian n
Modelagem Conceitual: exemplo
Deseja-se manter informações sobre
alunos, cursos, disciplinas e
departamentos:
1. Cada disciplina possui um
departamento responsável. Um
departamento é responsável por
muitas disciplinas.
2. Uma disciplina pode possuir
diversos pré-requisitos. Uma
disciplina pode ser pré-requisito de
muitas outras disciplinas.
3. Uma disciplina pode aparecer no
currículo de muitos cursos. Um
curso pode possuir muitas
disciplinas em seu currículo.
4. Um aluno está inscrito em um
curso. Um curso pode ter nele
inscritos muitos alunos.
Departamento Disciplinaresponsável1 n
pré-requisito
n n
Curso
disc-curso
n
n
Aluno inscrição1n
Modelagem Conceitual:atributos
Dado que é associado a cada ocorrência de uma
entidade ou de um relacionamento;
Muitas vezes os atributos não são representados
para não sobrecarregar o diagrama;
Projeto
tipo
nome
código
Assim como uma entidade, relacionamentos
também podem possuir atributos;
Modelagem conceitual:atributos de relacionamentos
Médico
data
nomeCRM
Paciente
nomecódigo
consultan n
Departamento Funcionáriopossuin1
nomecódigo nomematrícula
Modelagem Conceitual: identificadores
Cada entidade deve possuir um identificador;
Um identificador é um conjunto de um ou mais
atributos cujos valores servem para distinguir
uma entidade.
Aluno
nomeRA endereço
Linguagem SQL
A linguagem SQL: estrutura
Linguagem de Definição de dados (DDL)
◦ Subconjunto de comandos para definição e
modificação de esquemas de relação (tabelas),
remoção de tabelas, etc.
Linguagem de Manipulação de dados (DML)
◦ Subconjunto de comandos para inserir, remover e
modificar informações em um banco de dados.
Linguagem de
Definição de Dados
DDL
Linguagem de Definição de Dados:comandos
CREATE table
◦ cria uma tabela no banco de dados.
DROP table
◦ Apaga/exclui uma tabela do banco de dados.
ALTER table
◦ Altera a estrutura de uma tabela no banco de dados
Linguagem de Definição de Dados:create table
Aluno
nomeRA endereço
CREATE TABLE aluno
( RA numeric(9) primary key,
nome char(40) not null,
endereco varchar(50)
)
nome da tabela
nomes dos campos
tipos de dado
restrições de
integridade
RA nome endereco
1242532 Manoel Rua Cinco
1425534 Joana Rua São Paulo
1565243 Maria Rua Pio XII
4537642 João Rua Leão 23
Aluno
Linguagem de Definição de Dados:create table (relacionamento 1:n)
Departamento Funcionáriopossuin1
nomecódigo nomematrícula
CREATE TABLE departamento
( codigo numeric(2) primary key,
nome char(30) not null )
CREATE TABLE funcionario
( matricula numeric(5) primary key,
nome char(40) not null,
depto numeric(2) references departamento(codigo) )
depto
Linguagem de Definição de Dados:create table (relacionamento 1:n)
Departamento Funcionáriopossuin1
nomecódigo nomematrícula depto
Codigo nome
01 Contabilidade
02 Recursos Humanos
03 Informática
Departamento
Matricula nome depto
35241 João 03
52615 Maria 01
73645 Manoel 02
76545 Heloisa 03
Funcionario
Linguagem de Definição de Dados:create table (relacionamento n:n)
CREATE TABLE medico
( CRM numeric(6) primary key,
nome char(40) not null )
CREATE TABLE paciente
( codigo numeric(3) primary key,
nome char(40) not null )
Médico
data
nomeCRM
Paciente
nomecódigo
consultan n
CREATE TABLE consulta
( medico numeric(6) references medico(CRM),
paciente numeric(3) references paciente(codigo),
data date )
Linguagem de Definição de Dados:create table (relacionamento n:n)
Médico
data
nomeCRM
Paciente
nomecódigo
consultan n
CRM nome
102199 Carlos Alberto
243552 Maria Luiza
356623 José Carlos
Medico
Codigo nome
117 João
236 Maria
405 Manoel
765 Heloisa
Paciente
Medico Paciente data
102199 117 10/08/2019
243552 405 12/08/2019
356623 236 03/07/2019
Consulta
Linguagem de
Manipulação de
Dados
(DML)
Linguagem SQL
Linguagem de Manipulação de Dadoscomandos
SELECT
◦ é o comando mais usado do DML, comanda e permite ao
usuário especificar uma consulta com uma descrição do
resultado desejado. A questão não especifica como os
resultados devem ser localizados.
INSERT
◦ Incluir um registro em uma tabela.
UPDATE
◦ Alterar os valores dos dados de uma tabela.
DELETE
◦ remover registros de uma tabela.
O comando
SELECT
FROM
WHERE
ORDER BY
Linguagem de Manipulação de Dados
O comando SELECT
select nome, salario
from funcionario
where depto = 1
order by salario DESC
Apresentar o nome e o salário dos
funcionários do departamento 1 em
ordem decrescente salário
Guilherme Dias, 3000
Maria José da Silva, 2000
Adriano José Ribeiro, 1800
Funcionario
Linguagem SQL
Funções agregadas
◦ A linguagem SQL possui algumas funções específicas
para os seguintes cálculos:
média...............: AVG
mínimo............: MIN
máximo...........: MAX
total.................: SUM
contar..............: COUNT
Linguagem SQL
1. Qual a média salarial da empresa?
SELECT AVG(salario)
FROM Funcionario
3. Qual o maior salário da empresa?
SELECT MAX(salario)
FROM Funcionario
4. Quanto é a folha de pagamento da empresa?
SELECT SUM(salario)
FROM Funcionario
Funcionario
3280
10000
32800
Linguagem SQL
Grupos
◦ A SQL oferece a habilidade para calcular funções
relacionados a grupos de registros usando a cláusula
group by.
◦ O atributo utilizado na cláusula group by é usado para
se formar grupos.
◦ Registros com o mesmo valor são colocados em um
mesmo grupo.
Linguagem SQL
1. Apresentar o código do departamento seguido da média salarial do departamento
SELECT depto, AVG(salario)
FROM Funcionario
GROUP BY depto
2. Apresentar o código do departamento seguido do maior salário do departamento;
SELECT depto, MAX(salario)
FROM Funcionario
GROUP BY depto
Funcionario
Top Related