Uploaded by email emaill

bd07

advertisement
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
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
801
744,00
647
105.366,00
Gabriela
R. do Sol
Maceió
Gabriela
R. do Sol
Maceió
Cliente
Conta
Cliente
Cod_cliente Nome
Rua
Cidade
São Paulo
Cod_conta
Saldo
900
55,00
01
José
Av. Pio XI
02
Maria
R. São Francisco Recife
556
100.000,00
03
Gabriela
R. do Sol
647
105.366,00
801
744,00
Maceió
Cliente_Conta
Cod_cliente
Cod_conta
01
900
02
556
02
647
03
647
03
801
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
Reserva
Empréstimo
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;

CURSO
MÉDICO
Matrícula
Consulta
ALUNO
PACIENTE
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
1
Uma ocorrência de DEPARTAMENTO
pode estar associada ao no máximo 1
ocorrência de EMPRESA
possui
n
Departamento
A uma ocorrência de EMPRESA pode
estar associada várias (n) ocorrências
de DEPARTAMENTO
Modelagem Conceitual:
relacionamentos 1 para n
Departamento
1
possui
n
Funcionário
Modelagem Conceitual:
relacionamentos n para n
Médico
Livro
n
n
consulta
autoria
n
n
Paciente
Autor
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.
pré-requisito
n
Departamento
1
n
responsável
4. Um aluno está inscrito em um
curso. Um curso pode ter nele
inscritos muitos alunos.
Disciplina
n
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.
n
disc-curso
n
Aluno
n
inscrição
1
Curso
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
Modelagem conceitual:
atributos de relacionamentos

Assim como uma entidade, relacionamentos
também podem possuir atributos;
Departamento
código
1
n
possui
Funcionário
matrícula nome
nome
Médico
n
consulta
n
Paciente
data
CRM
nome
código
nome
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
RA nome 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
nome da tabela
CREATE TABLE aluno
( RA
numeric(9) primary key,
nome
char(40)
not null,
endereco varchar(50)
)
Aluno
RA nome endereço
nomes dos campos
tipos de dado
Aluno
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
restrições de
integridade
Linguagem de Definição de Dados:
create table (relacionamento 1:n)
Departamento
código
1
possui
nome
n
Funcionário
matrícula nome
depto
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) )
Linguagem de Definição de Dados:
create table (relacionamento 1:n)
Departamento
código
1
possui
n
matrícula nome
nome
Departamento
Funcionário
depto
Funcionario
nome
Matricula
nome
01
Contabilidade
35241
João
03
02
Recursos Humanos
52615
Maria
01
03
Informática
73645
Manoel
02
76545
Heloisa
03
Codigo
depto
Linguagem de Definição de Dados:
create table (relacionamento n:n)
Médico
n
consulta
n
Paciente
data
CRM
nome
CREATE TABLE medico
( CRM
numeric(6) primary key,
nome
char(40)
not null )
código
nome
CREATE TABLE paciente
( codigo numeric(3) primary key,
nome
char(40)
not null )
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)
n
Médico
n
consulta
Paciente
data
CRM
nome
código
Medico
CRM
nome
Paciente
nome
102199
Carlos Alberto
243552
Maria Luiza
356623
José Carlos
Consulta
Codigo
nome
117
João
236
Maria
405
Manoel
765
Heloisa
Medico
Paciente
data
102199
117
10/08/2019
243552
405
12/08/2019
356623
236
03/07/2019
Linguagem de
Manipulação de
Dados
(DML)
Linguagem SQL
Linguagem de Manipulação de Dados
comandos

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
Funcionario
Apresentar o nome e o salário dos
funcionários do departamento 1 em
ordem decrescente salário
select nome, salario
from funcionario
where depto = 1
order by salario DESC
Guilherme Dias, 3000
Maria José da Silva, 2000
Adriano José Ribeiro, 1800
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
Funcionario
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.
3280
10000
Quanto é a folha de pagamento da empresa?
SELECT SUM(salario)
FROM Funcionario
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
Funcionario
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
Download