Buscar

Banco de Dados 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 240 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 240 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 240 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de Dados - I
Conceito e Arquitetura - 1
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Conceito e Arquitetura - 1
“Armazenar dados devidamente organizados, 
permitindo a sua recuperação de modo rápido e 
confiável somente por usuários devidamente 
autorizados.”
Objetivo de um Banco de Dados
O que é um Banco de Dados?
Para que eu preciso de um Banco de Dados?
Como definir, projetar e construir um Banco de 
Dados?
Como vou usar um Banco de Dados?
Qual a segurança que um Banco de Dados me 
oferece?
Introdução
Fundamentos;
Sistema de Banco de Dados;
SGBD – Sistema Gerenciador de Banco de Dados;
Papel Humano no sistema;
Nível de abstração de dados;
Modelos de banco de dados;
Introdução
Redundância e Inconsistência de dados
 Mesmo dado em locais diferentes
Dificuldade no acesso aos dados
 Ordenação diferente do desejado
Isolamento de dados
 Um dado não está relacionado com outro dado
Problemas de segurança
 Acesso por pessoas indevidas
Problemas de integridade
 Informações não conferem
Principais Diferenças entre BD e arquivos
O que é um Dado?
 É uma representação de um fato, um 
acontecimento;
 É elementar e imprescindível;
 É indivisível (não existe meio dado);
 Registra uma informação;
Exemplos:
 23/01/1967
 7
 Londrina
O Dado
O que é uma informação?
 É um dado com significado mais amplo;
 Dá significado aos dados a ser analisado, o qual 
pode ser (ou não) modelado;
 Conjunto de dados inter-relacionados;
Exemplo:
 23/01/1967 : data de nascimento
 Londrina : cidade do estado do Paraná;
A Informação
Relacione a segunda coluna de acordo com a 
primeira coluna.
Atividade
1 ) altura do pé-direito da sala ( ) Maracanã
2 ) data marcada para a prova ( ) 20
3 ) apelido do maior estádio do Rio de 
Janeiro
( ) 2,40 m
4 ) horário de termino do trabalho ( ) 19/10/2017
5 ) quantidade de times na série A do 
campeonato brasileiro de futebol
( ) 17:30h
Banco de Dados - I
Conceito e Arquitetura - 2
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Conceito e Arquitetura - 2
O que é um Banco de Dados?
 É uma coleção de dados persistentes, usados 
pelos sistemas nas empresas;
 É uma coleção de dados inter-relacionados, 
representando informações de um domínio 
específico;
 “É o produto final (análise + projeto + 
modelagem) resultando num repositório”.
Banco de Dados (BD)
São os componentes responsáveis pela definição e 
manutenção de Banco de Dados;
Hardware (computadores);
Software (programas de computador);
Peopleware (pessoas);
Dados (são as informações);
Sistema de Banco de Dados
Sistema de Banco de Dados
Dados
Nome:
Endereço:
Software
Hardware Usuário
Alguns objetivos:
 Isolar os usuários dos detalhes mais internos;
 Prover independência de dados às aplicações;
 Prover um repositório de dados;
Sistema de Banco de Dados
Quais as vantagens:
 Rapidez na manipulação e no acesso à 
informação;
 Redução do esforço humano;
 Disponibilização da informação no tempo 
necessário;
 Compartilhamento de dados;
Sistema de Banco de Dados
Quais as vantagens:
 Controle integrado de informações distribuídas 
fisicamente;
 Redução de redundâncias e de inconsistência de 
informações;
 Aplicação automática de restrições de segurança 
e integridade (regras de negócio no banco de 
dados);
Sistema de Banco de Dados
Características:
 Conhecido como SGBD ou DBMS (Data Base 
Management System);
 Composto por módulos de programas;
 Fornece a interface entre os dados de baixo nível 
e os programas aplicativos;
 Manipula todos os acessos a todos os objetos do 
banco de dados;
Sistema Gerenciador de Banco de Dados
Características:
 É um conjunto de programas (ferramentas) 
utilizados para a construção, manutenção, 
administração e gerenciamento de um Banco de 
Dados;
 Defini o armazenamento e organização, provê sua 
segurança, faz o controle da concorrência da sua 
utilização;
 Provê os mecanismos de proteção e recuperação 
dos dados em casos de perda do Banco de Dados;
Sistema Gerenciador de Banco de Dados
Sistema Gerenciador de Banco de Dados
Tarefas:
 Interação com o sistema de arquivos do sistema 
operacional;
 Cumprimento da integridade;
 Cumprimento da segurança;
 Cópias de segurança “backup” e recuperação;
 Controle de concorrência de acesso aos dados;
 Gerenciador de tarefas;
Sistema Gerenciador de Banco de Dados
Banco de Dados - I
Papel do Humano no Sistema - 3
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Papel do Humano no Sistema - 3
Em linhas gerais, temos a interação humana no 
sistema através dos papéis:
 DBA – Data Base Administrator ou Administrador 
de Banco de Dados;
 Desenvolvedor;
 Usuário final;
Papel do Humano no Sistema
Administrador de Banco de Dados (DBA):
 Pessoa (ou grupo) responsável pelo controle total 
do Sistema de Banco de Dados;
 Tarefas:
• Define as estratégias de instalação e 
configuração do Banco de Dados;
• Define as estratégias para cópia de segurança e 
recuperação;
• Define o modelo e o projeto do Banco de 
Dados;
Papel do Humano no Sistema
Administrador de Banco de Dados (DBA);
 Tarefas:
• Modifica a organização física;
• Concede autorização para acesso aos dados;
• Define o Dicionário de Dados (pode ser feito por 
um Administrador de Dados);
• Dimensiona as necessidades de hardware e 
software para o SGBD;
Papel do Humano no Sistema
Desenvolvedor:
 Pessoa (ou grupo) responsável pelo 
desenvolvimento dos sistemas que acessarão o 
Banco de Dados;
 Tarefas:
• Definição e manipulação de objetos para 
manter os dados;
• Definição e manipulação de objetos para 
execução de rotinas;
Papel do Humano no Sistema
Usuários:
 Podemos classificar em 2 tipos de usuários:
• Usuário leigo - São pessoas que não necessitam 
de conhecimento técnico. Apenas irão utilizar 
os dados/informações extraídos do Banco de 
Dados;
• Poderão efetuar as consultas via software, ou 
uma ferramenta de interface com o Banco de 
Dados;
Papel do Humano no Sistema
Usuários:
• Usuário especialista - São pessoas que possuem 
um conhecimento técnico específico e através 
de softwares específicos realizam acesso direto 
ao Banco de Dados, extraindo informações sob 
um contexto diferente dos sistemas.
• Utilizam ferramentas específicas para acesso ao 
Banco de Dados de modo direto;
Papel do Humano no Sistema
Usuários:
• Usuário especialista:
• Trabalham com informações conhecidas como 
BI (Business Intelligence);
• Tratam o Banco de Dados como um 
DataWareHouse (DWH) ou armazém de dados;
• Utilizam técnicas de Data Mining (mineração de 
dados);
Papel do Humano no Sistema
Usuários:
• Usuário especialista - São pessoas que possuem 
um conhecimento técnico específico e através 
de softwares específicos realizam acesso direto 
ao Banco de Dados, extraindo informações sob 
um contexto diferente dos sistemas.
• Utilizam ferramentas conhecidas como BI 
(Business Intelligence), Data Mining (mineração 
de dados), DataWareHouse (armazém de 
dados);
Papel do Humano no Sistema
Banco de Dados - I
Níveis de Abstração de Dados - 4
Análise e Desenvolvimento de SistemasProfessor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Níveis de Abstração de Dados - 4
O Sistema de Banco de Dados deve prover uma 
visão abstrata de dados para os usuários;
 Abstração de Dados dividida em 3 níveis;
• Nível de visão do usuário;
• Nível conceitual;
• Nível físico;
Níveis de Abstração de Dados
Níveis de Abstração de Dados
Nível Externo ou de Visão dos Usuários:
 Identificação do ambiente;
 Descreve partes do Banco de Dados, de acordo 
com as necessidades de cada usuário;
 Usuário associa a uma planilha eletrônica;
 Representa o mais alto nível de abstração;
Níveis de Abstração de Dados
Níveis de Abstração de Dados
Nível Conceitual:
 O Banco de Dados é descrito através de 
entidades, atributos e relacionamentos;
 Representa o início da diagramação / modelagem 
de dados;
 Está ligado ao projeto conceitual e projeto lógico 
do Banco de Dados;
 É totalmente independente do SGBD;
Nível Físico:
 O Banco de Dados é descrito por tabelas, campos 
e relacionamentos;
 Está ligado ao projeto físico do Banco de Dados;
 É totalmente dependente do SGBD;
 Engloba estruturas complexas de armazenamento 
de baixo nível;
Níveis de Abstração de Dados
Conceitos e Definições
Instância
 Representa um momento instantâneo do Banco 
de Dados;
 Uma fotografia do Banco de Dados;
Esquema
 Projeto Lógico + Projeto Físico;
Independência Lógica:
 Capacidade de modificar a estrutura lógica do 
Banco de Dados sem a necessidade de recompilar 
todos os programas que acessam o BD.
 Ex. adicionar uma tabela no Banco de Dados;
Independência Física:
 Capacidade de modificar a estrutura física do 
Banco de Dados sem a necessidade de recompilar 
todos os programas que acessam o BD.
 Ex. mudar tabela de local de armazenamento;
Independência de Dados
Gerenciador de Banco de Dados
Interação com o gerenciador de arquivos;
Cumprimento de integridade;
Cumprimento de segurança;
Gerenciar de backup e recuperação;
Controle de Concorrência;
A Satisfação de um usuário é medida pelo 
desempenho do Banco de Dados (tempo de 
resposta);
 O SGBD é um programa que provê a interface 
entre os programas aplicativos e os dados de 
baixo nível armazenados no Banco de Dados;
Gerenciador de Banco de Dados
Banco de Dados - I
Linguagem de Acesso aos Dados - 5
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Linguagem de Acesso aos Dados 
- 5
SQL – Structure Query Language, ou Linguagem de 
Consulta Estruturada;
Padrão ANSI (American National Standards 
Institute);
Revisões em 86, 92, 99 e 2003(XML);
Extensões proprietárias dos fabricantes de SGBD;
Linguagem de Acesso aos Dados
Linguagem de Acesso aos Dados
Principais Definições de Interação com o SGBD;
No início eram DML e DDL;
Foi subdividido em DDL, DML, DQL, DCL e DTL;
 Data Definition Language (DDL).
• Linguagem de Definição de Dados, utilizada 
para criar e manter as estruturas de 
armazenamento usadas no Banco de Dados;
• Comandos Create, Alter e Drop;
Linguagem de Acesso aos Dados
Linguagem de Acesso aos Dados
 Data Manipulation Language (DML);
• Linguagem de Manipulação de Dados, utilizada 
para interagir com os dados dentro das tabelas 
do Banco de Dados;
• Comandos Insert, Update e Delete;
 Data Query Language (DQL);
• Linguagem de Consulta de Dados, utilizada para 
acessar e consultar os dados dentro das tabelas 
do Banco de Dados;
• Comando Select;
Linguagem de Acesso aos Dados
Linguagem de Acesso aos Dados
 Data Transaction Language (DTL).
• Linguagem de Transação de Dados, utilizadas 
para controle das transações no Banco de 
Dados;
• Comandos Begin Transaction, Commit, Rollback;
 Data Control Language (DCL);
• Linguagem para Controle de Dados, utilizada 
para controle de segurança do Banco de Dados;
• Comandos Grant, Revoke e Deny;
Linguagem de Acesso aos Dados
Linguagem de Acesso aos Dados
 A DML tradicional engloba o comando Select;
 DML Procedural
• O usuário deve especificar qual dado é 
requisitado e como chegar até ele;
 DML não Procedural
• O usuário deve especificar qual dado é 
requisitado sem a necessidade de especificar 
como chegar até ele;
Banco de Dados - I
Estrutura Geral do Sistema - 6
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Padrão SQL ANSI - 6
Nasceu na década de 70 dentro dos laboratórios da 
IBM;
Padronizado pelo American National Standards 
Institute – ANSI;
Cada fabricante de SGBD implementa modificações 
proprietárias (ex. “;” e “go”);
Padrão SQL ANSI
Padrão SQL ANSI
Fator de sucesso : Linguagem Semântica;
 Escreve do jeito que se “fala”;
Adotado por diversos fabricantes de SGBD, assim o 
conhecimento técnico é preservado;
Características particulares de cada SGBD impedem 
uma migração 100% dos scripts prontos;
Para criar uma tabela nova dentro do Banco de 
Dados;
Create table aluno (id_aluno number(3), nm_aluno
varchar2(30));
Crie a tabela aluno com os campos id_aluno
numérico de 3 posições e nm_aluno caracter de 
tamanho variável com 30 posições no máximo;
Padrão SQL ANSI
Padrão SQL ANSI
Para criar um usuário novo no Banco de Dados;
Create user Roberto identified by ryn123;
Cria um usuário novo chamado Roberto e com uma 
senha ryn123;
Para verificar o conteúdo de uma tabela dentro do 
Banco de Dados;
Select id_aluno, nm_aluno from aluno;
 Select < o que quer ver> from <de qual tabela>
Selecione id_aluno, nm_aluno da tabela aluno;
Select * from aluno;
Padrão SQL ANSI
Padrão SQL ANSI
Para verificar o conteúdo de uma tabela com 
critérios de busca dentro do Banco de Dados;
Select id_aluno from aluno where id_aluno < 10;
Selecione id_aluno da tabela aluno onde id_aluno
seja menor que 10;
Para verificar o conteúdo de uma tabela dentro do 
Banco de Dados;
Select id_aluno from aluno where id_aluno > 5 and
id_aluno < 30;
Selecione id_aluno da tabela aluno onde id_aluno
seja maior que 5 E id_aluno seja menor que 30;
Padrão SQL ANSI
Padrão SQL ANSI
Para gravar / inserir um conteúdo novo dentro de 
uma tabela no Banco de Dados;
Insert into aluno values (10 , “ROBERTO”);
Ou 
Insert into aluno (id_aluno, nm_aluno) values (10, 
“ROBERTO”);
Inseri dentro da tabela aluno os valores 10 e 
ROBERTO respectivamente;
Para atualizar os dados de uma tabela dentro do 
Banco de Dados;
Update aluno set (nm_aluno = ‘RENATO’);
Atualiza todos os registros da tabela aluno 
atribuindo um novo valor para o campo nm_aluno
igual a RENATO para todos os registros da tabela 
aluno;
Select * from aluno;
Padrão SQL ANSI
Padrão SQL ANSI
Para atualizar os dados de uma tabela dentro do 
Banco de Dados;
Update aluno set (nm_aluno = ‘RENATO’) where
id_aluno < 10;
Atualiza todos os registros da tabela aluno 
atribuindo um novo valor para o campo nm_aluno
igual a RENATO desde que o atributo id_aluno seja 
menor que 10 (exclusive);
Para deletar/remover os dados de uma tabela 
dentro do Banco de Dados;
Delete from aluno;
Deleta / remove todos os registros da tabela aluno 
sem questionar nada, este comando apaga todos os 
registros da tabela;
Padrão SQL ANSI
Padrão SQL ANSI
Para deletar/remover os dados de uma tabela 
dentro do Banco de Dados;
Delete from aluno where id_aluno < 10;
Deleta / remove todos os registros da tabela aluno 
com a condição doid_aluno ser menor que 10; 
Perguntas
Banco de Dados - I
Modelo Entidade Relacionamento - 7
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Modelo Entidade Relacionamento -
7
“Estruturar e organizar os repositórios de 
armazenamento dos dados de modo a permitir um 
rápido acesso quando necessário, obedecendo a 
regras de negócio estabelecidas.”
Objetivo de um Modelagem de Banco de 
Dados
Nível conceitual;
Elementos do mundo real;
 Através de Entidades e Relacionamentos
Definido por Peter Chen em 1976;
O que fazer;
Símbolos fazem um diagrama;
DER – Diagrama Entidade Relacionamento;
Modelo Entidade Relacionamento
Elementos de Negócio de um Mundo Real
Objetos, coisas, algo relevante;
Concreto ou Abstrato
Características ou propriedades em comum 
agrupadas;
Entidade
Somente o que se precisa modelar
Relevância
Concretos: Palpáveis, Sólidos;
 Camisas, carros, pessoas, animais;
Abstratos: Representam ideias, Conceitos;
 Nota Fiscal, pedidos, conta corrente;
Existência
Simbologia
Conjunto de Ocorrências
Descrição Textual Narrativa
“ O nosso cliente entra aqui na loja e escolhe o 
filme que deseja ver, os filmes estão separados 
nas prateleiras pelo gênero ao qual“ .
Atividade
Identifique as entidades na descrição textual narrativa abaixo
Resolução
Cliente Filme Gênero
Banco de Dados - I
Modelo Entidade Relacionamento – Relacionamento - 8
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Modelo Entidade 
Relacionamento –
Relacionamento - 8
Associação entre entidades detectadas;
Entre duas entidades (binário);
Entre várias entidades (ternário, n-ário);
Expressa “REGRAS DE NEGÓCIO”;
A maioria dos SGBD de mercado não implementam 
relacionamentos ternários;
Relacionamentos
Losango;
Nome vai dentro do símbolo;
Pode precisar de verbo auxiliar (faz, possui, ser, ter); 
Ausência de verbo pode ser interpretada como ‘se 
relaciona com’;
Combinação de nomes A x B (A para B ou B por A);
Simbologia
Exemplos
Conjunto de Ocorrências
Conjunto de ocorrências do 
relacionamento entre as entidades 
envolvidas.
Descrição Textual Narrativa
Numa descrição textual, verbos podem denotar 
relacionamentos, assim: "...sendo que a 
bibliotecária empresta o livro...", 
“ O atendente solicita os dados pessoais do 
cliente no momento do seu cadastro, aproveita 
inclusive para perguntar quais são os gêneros 
de sua preferência ”.
Atividade
Identifique as entidades e os relacionamentos na descrição 
textual narrativa abaixo
Resolução
Funcionário
Cliente
Gênero
cadastra prefere
“ ... um cliente pode escolher vários filmes e 
locar aqueles que estiverem disponíveis no 
momento... ”.
Atividade
Identifique as entidades e os relacionamentos na descrição 
textual narrativa abaixo
Resolução
Filme
Cliente
Faz Locação
Banco de Dados - I
Cardinalidade - 9
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Cardinalidade - 9
Quantidade de ocorrências de entidades de A que 
podem estar associadas a uma ocorrência de 
entidade de B que se quer analisar;
É uma “Regra de Negócio – RN” entre as entidades 
envolvidas no relacionamento;
Cardinalidade
Máximo de ocorrências de uma entidade em 
relação à outra;
=> Um para um ( 1 : 1 );
=> Um para muitos ( 1 : n );
=> Muitos para muitos ( n : n ) ou ( n : m );
Cardinalidade Máxima
Acontece quando a ocorrência de uma entidade se 
relaciona com (no máximo) uma ocorrência de 
outra entidade e vice-versa;
Leitura direta;
O cliente (a) compra (b), no máximo 1 (c) produto 
(d);
Cardinalidade Máxima 1 : 1
O produto (a) é comprado por (b), no máximo 1 © 
cliente (d);
Um produto é comprado por, no máximo 1 cliente;
Leitura Inversa
A ocorrência de uma entidade se relaciona com (no 
máximo) muitas ocorrências de outra, porém a 
ocorrência de outra entidade se relaciona com (no 
máximo) uma ocorrência da primeira;
Leitura direta;
O cliente (a) compra (b), no máximo muitos (c) 
produtos (d);
Cardinalidade Máxima 1:n
O produto (a) é comprado por (b), no máximo 1 (c) 
cliente (d);
Um produto é comprado por, no máximo 1 cliente;
Leitura Inversa
Banco de Dados - I
Cardinalidade - 10
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Cardinalidade - 10
Acontece quando a ocorrência de uma entidade se 
relaciona com (no máximo) muitas ocorrências de 
outra entidade e vice-versa;
Leitura direta;
O cliente (a) compra (b), no máximo muitos © 
produtos (d);
Cardinalidade Máxima n:n
Leitura Inversa
Produto (a) é comprado por (b), no máximo muitos 
(c) clientes (d);
Um produto é comprado por, no máximo muitos 
clientes;
Mínimo de ocorrências de uma entidade em relação 
à outra;
Cardinalidade Mínima
Opcional (0): uma 
ocorrência se relaciona 
com (no mínimo) 
nenhuma de outra 
entidade.
Obrigatória (1): uma 
ocorrência se relaciona 
com (no mínimo) uma de 
outra entidade.
Cardinalidade Mínima
separados por vírgula e envolvido por 
parênteses não se pode informar somente a 
cardinalidade mínima
Definição de Cardinalidade:
 Ter em mente o cenário a ser modelado;
 Detectar nos verbos as quantidades de entidades 
presentes no relacionamento através da 
descrição textual narrativa;
 Nomear apropriadamente as cardinalidades;
Check List
Exemplos
Faça a leitura destas cardinalidades;
Funcionário
Cliente
Gênero
cadastra prefere
(0,1)
(0,n)
(0,1)
(0,n)
Faça a leitura destas cardinalidades;
Exemplos
Filme
Cliente
Faz Locação
(0,1)
(0,n)
Banco de Dados - I
Atributos - 11
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Atributos - 11
Dado relevante, característica ou propriedade de 
uma entidade ou de um relacionamento.
Linguagem de Acesso aos Dados
Descrição Textual Narrativa
Adjetivos indicam os atributos;
“... cada empregado é numerado (tem um número 
de matrícula), é nomeado (possui um nome), tem 
uma data de contratação, tem um tempo de serviço 
e pode ter dois telefones de contato ...”;
Número de matrícula, nome, data de contratação, 
tempo de serviço, telefone de contato;
Representados graficamente por elipses, 
internamente ligados às entidades ou 
relacionamentos;
Simbologia
Data de 
contratação
nome
Número de
matrícula empregado
Tempo de 
serviço
Telefone
De contato
Atividade
De acordo com a descrição textual narrativa, 
identifique os atributos das entidades envolvidas;
 “...durante o processo de cadastramento do 
nosso novo cliente, o atendente pergunta os 
dados pessoais dele como o seu nome, rg, cpf, 
data de nascimento, idade, endereço, telefone 
residencial, telefone móvel, e-mail, os gêneros de 
sua preferência a atribui um código numérico de 
acordo com a ficha cadastral...”;
Resolução
Tipos de Atributos
 Determinante;
 Composto;
 Derivado;
 Multivalorado;
 Determinante – destaca, diferencia, individualiza 
uma ocorrência da entidade (sublinhado);
Tipos de Atributosnúmero de
matrícula
empregado
Banco de Dados - I
Tipos de Atributos - 12
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Tipos de Atributos - 12
Composto – pode ser dividido em partes para 
representar adequadamente o todo;
Tipos de Atributos
pre-nome
nome do
meio
sobrenome
nome
empregado
Tipos de Atributos
Derivado – obtido através do valor de outros 
atributos (elipse tracejada);
Tempo de serviço = data atual – data de 
contratação;
data de 
contratação
tempo de
serviço
empregado
Multivalorado – conjunto de valores para uma única 
ocorrência da entidade (elipse com linha dupla);
Tipos de Atributos
numero de
matrícula
nome
empregado
telefone
de contato
Atividade
Baseado na atividade anterior, quais seriam os 
prováveis atributos determinante, composto, 
derivado e multivalorado;
endereco
idade generos
codigo
Banco de Dados - I
Chaves - 13
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Chaves - 13
Primary Key - PK;
Atributo ou conjunto de atributos que permite(m) a 
identificação individual de cada ocorrência na 
entidade;
Não pode conter valor nulo;
Chave Primária
aluno
matricul
a
nom
e
rg
Não pode sofrer atualização de valor;
Precisa ser deletado e re-criado;
Gera um índice automático;
É o caminho mais rápido para se chegar em um 
registro de uma tabela do Banco de Dados;
Chave Primária
aluno
matricul
a
nom
e
rg
Chave Estrangeira
Foreign Key – FK;
Atributo ou conjunto de atributos que vem herdado 
de um relacionamento com uma entidade forte;
turma tem aluno
id_turma id_turma
(1,1) (0,N)
Pode sofrer atualização de valor mas com 
condições;
Não pode ser órfão de pai;
Pode ter vários irmãos;
Chave Estrangeira
turma tem aluno
id_turma
(1,1) (0,N)
id_turma
Chave Estrangeira
Uma entidade pode ter várias chaves estrangeiras, 
vindo de vários relacionamentos;
Uma chave estrangeira pode ou não fazer parte da 
chave primária de sua própria entidade;
turma tem aluno
id_turma id_turma
(1,1) (0,N)
matricul
a
Banco de Dados - I
Força da Entidade - 14
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Força da Entidade - 14
Entidade Forte – possui atributos suficientes para 
determinar a sua individualidade perante as 
ocorrências da entidade;
Força da Entidade
nome
pessoa 
fisica t_movel
cpf
Força da Entidade
Entidade Fraca – não possui atributos suficientes 
para permitir a sua identificação individualizada;
Recebe a chave primária da entidade forte como 
uma chave estrangeira;
cnpj
fabricante possui contato
sexo
nome 
usual
cnpj
Força da Entidade
Sempre que tem uma entidade fraca no 
relacionamento. O relacionamento é representado 
por um losango com linha dupla;
cnpj
fabricante possui contato
sexo
nome 
usual
Só existe a partir do relacionamento;
 Salário em empregado – do empregado, não 
importa o departamento que ele esteja alocado;
 Salário em departamento – do departamento, 
independentemente do funcionário alocado;
 Salário do relacionamento – ao funcionário 
quando alocado em um departamento;
Atributos no Relacionamento
salário salário
salário
empregado alocado departamento
Banco de Dados - I
Grau de Relacionamento - 15
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Grau de Relacionamento - 15
Binário – entre duas entidades;
N-ário (ternário, quaternário, etc) – entre mais de 
duas entidades;
Grau de Relacionamento
aluno pertence turma
Relacionamento Binário
aluno pertence turma
Relacionamento N-ário
aluno pertence turma
curso
Relacionamento Binário
depósito fornece construtora
material
n n
vende usa
n
n n
n
Relacionamento N-ário
depósito fornecimento construtora
material
n n
n
quantidade
Relacionamento N-ário
depósito fornecimento construtora
material
n n
n
quantidade
Auto Relacionamento
peça
composição
n
Peça menor
n
Peça maior
funcionário
supervisiona
n
subordinado
1
supervisor
Banco de Dados - I
Modelagem de Dados - 16
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Modelagem de Dados - 16
Para a parte prática vamos criar o modelo 
conceitual, lógico e físico utilizando a ferramenta 
BrModelo;
BrModelo é free (gratuito) e executável (não precisa 
instalar nada);
Modelagem de Dados
Três entidades: Cliente, Carro e Modelo;
Regras de Negócio;
Um cliente pode reservar vários carros e um carro 
pode ser reservado por vários clientes (não ao 
mesmo tempo);
Uma reserva obrigatoriamente tem que ter um 
cliente e um carro no mínimo;
Modelagem de Dados
Regras de Negócio;
Um modelo pode ter vários carros e um carro só 
pode ser de um único modelo;
Um modelo pode não ter carros ainda, mas o carro 
obrigatoriamente tem que ter um modelo;
Modelagem de Dados
Modelagem de Dados
Cliente: 
 nome – caractere (30);
 cpf – caractere (11); (zero a esquerda)
Carro:
 placa – caractere (7);
 marca – caractere (15);
 modelo – caractere (15);
 cor – caractere (15);
 ano – número (2);
Modelo:
 id_modelo – numero (4);
 nome – caractere (15);
 ar_cond – caractere (1);
 dir_hid – caractere (1);
 passageiro – numero (2);
 porta – numero (1);
 cambio – caractere (1);
 mala – numero(1);
Modelagem de Dados
Modelagem de Dados
Entidades são Retângulo;
Relacionamentos são Losango;
Atributos são Circulo (preenchido = determinante, 
vazio = normal);
Ligação do “objetos” são Linhas;
Modelagem de Dados
Modelagem de Dados
Banco de Dados - I
Modelagem de Dados - 17
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Modelagem de Dados - 17
Para a parte prática vamos criar o modelo lógico 
utilizando a ferramenta BrModelo;
BrModelo é free (gratuito) e executável (não precisa 
instalar nada);
Modelagem de Dados
Modelagem de Dados
O modelo lógico de dados é independente de SGBD 
porém já apresenta as características físicas dos 
atributos;
Modelagem de Dados
Modelagem de Dados
Tabelas são Retângulo;
Relacionamentos são Linhas;
Campos simples são retângulo simples;
Campo chave primária é retângulo com ponta 
preenchida;
Campo chave estrangeira é retângulo com ponta 
meio preenchida;
Modelagem de Dados
Banco de Dados - I
Modelagem de Dados - 18
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Modelagem de Dados - 18
Engenharia de Software – processo de 
transformação automática do Esquema Conceitual 
para o Esquema Lógico utilizando a ferramenta 
BrModelo;
Relacionamento N-N já é criada a Tabela Associativa 
com a chave primária das duas entidades 
participantes no relacionamento;
Modelagem de Dados
Modelagem de Dados
EsquemaConceitual -> 
Gerar 
Esquema 
Lógico;
Modelagem de Dados
Modelagem de Dados
Banco de Dados - I
Modelagem de Dados - 19
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Modelagem de Dados - 19
Engenharia de Software – processo de 
transformação automática do Esquema Lógico para 
o Esquema Físico utilizando a ferramenta 
BrModelo;
Script gerado no padrão SQL ANSI;
Sintaxe dos atributos padrão ORACLE;
Modelagem de Dados
Modelagem de Dados
Editar 
template
de 
conversão
Modelagem de Dados
Gerar 
esquema 
físico
Conversão
Converter
Modelagem de Dados
Modelagem de Dados
Modelagem de Dados
Banco de Dados - I
Prática SQL (Oracle) - 20
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Prática SQL (Oracle) - 20
Criando um usuário para o acesso ao Banco de 
Dados;
Utilizando o administrador do Banco de Dados –
usuário SYSTEM com a senha MANAGER;
Acessando o Banco de Dados
Vamos à prática
Conectando-se ao Banco de Dados com o 
administrador;
 SQL> connect system;
 SQL> manager (senha padrão)
 SQL> create user aluno identified by aluno;
 SQL> grant connect to aluno;
 SQL> grant resource to aluno;
Vamos à prática
Conectando-se com o usuário aluno;
 SQL> connect aluno;
 SQL> pwd: aluno
 SQL> show user;
Aplicar o script da aula anterior;
 Copiar e colar o script ou
 SQL> create table ...
Vamos à prática
Banco de Dados - I
Prática SQL (Oracle) Inserção de Dados - 21
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Prática SQL (Oracle) Inserção de 
Dados - 21
Para gravar novos dados dentro de uma tabela, 
utilizamos o comando INSERT;
O comando INSERT grava 1 registro em 1 tabela de 
cada vez;
Insert into <tabela> values (x, y, x);
Inserção de Dados
Inserção de Dados
Vamos gravar 5 clientes novos;
 Id_cpf_cliente, nm_cliente;
 11111111111, roberto;
 22222222222, anderson;
 33333333333, leonardo;
 44444444444, polyanna;
 55555555555, adriane;
Vamos gravar 5 modelos novos;
 Id_modelo, tp_cambio_modelo, nm_modelo, 
qt_mala_modelo, ar_cond_modelo, 
nr_porta_modelo, nr_passageiro_modelo, 
dir_hid_modelo;
 1, m, crossfox, 3, s, 4, 5, s;
 2, a, new civic, 6, s, 4, 5, s;
 3, a, fusion, 7, s, 4, 5, s;
 4, m, uno, 2, n, 2, 4, n;
 5, m, kwid, 2, n, 2, 4, n;
Inserção de Dados
Inserção de Dados
Vamos gravar 5 carros novos;
 Id_placa_carro, nm_marca_carro,dt_ano_carro, 
nm_cor_carro, id_modelo;
 HND0123, honda, 15, preto, 2;
 FRD5153, ford, 16, prata, 3;
 VWB7125, volkswagem, 17, vermelho, 1;
 FIA0398, fiat, 15, prata, 4;
 RNT3765, renault, 17, branco, 5;
Vamos gravar 10 reservas novas;
 Id_placa_carro, id_cpf_cliente;
 HND0123, 11111111111;
 VWB7125, 11111111111;
 FRD5153, 22222222222;
 FIA0398, 22222222222;
 VWB7125, 33333333333;
 RNT3765, 33333333333;
Inserção de Dados
Inserção de Dados
Vamos gravar 10 reservas novas;
 Id_placa_carro, id_cpf_cliente;
 HND0123, 44444444444;
 RNT3765, 44444444444;
 FRD5153, 55555555555;
 FIA0398, 55555555555;
Toda transação só terá validade definitiva se for 
confirmada;
COMMIT;
Caso deseje rejeitar a transação corrente;
ROLLBACK;
Controle de Transação de Dados
Banco de Dados - I
Prática SQL (Oracle) Seleção de Dados - 22
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Prática SQL (Oracle) Seleção de 
Dados - 22
Para pesquisar dentro das tabelas do Banco de 
Dados utilizamos o comando SELECT;
O comando SELECT pode apresentar uma resposta 
com as seguintes possibilidades:
 Deu erro de sintaxe;
 Não encontrou o que desejava;
 Trouxe apenas 1 registro como resposta;
 Trouxe vários registros como resposta;
Seleção de Dados
Estrutura do comando:
SELECT <o que quer ver> FROM <de qual tabela> 
WHERE <com qual condição>;
* representa todos os campos da tabela;
Pode-se acrescentar mais de uma tabela no mesmo 
comando SELECT, se não fizer a referencia cruzada, 
o resultado será a multiplicação entre as 
quantidades de todas as tabelas envolvidas no 
comando executado;
Seleção de Dados
Para ver a estrutura de uma tabela Oracle;
DESCRIBE <nome da tabela>;
Ou DESC <nome da tabela>;
Pode ser utilizada a visão do dicionário de dados 
user_tables;
Seleção de Dados
Seleção de Dados
SELECT * FROM CLIENTE;
SELECT ID_CPF_CLIENTE, NM_CLIENTE FROM 
CLIENTE;
SELECT ID_MODELO, NM_MODELO FROM 
MODELO;
SELECT ID_PLACA_CARRO, NM_MARCA_CARRO, 
ID_MODELO FROM CARRO;
Seleção com critérios de filtragem;
WHERE <condição de seleção>;
SELECT * FROM CLIENTE WHERE id_cpf_cliente > 
“33333333333” ;
Seleção de Dados
Seleção de Dados
Com duas ou mais tabelas;
SELECT <o que quer ver das duas tabela> FROM 
<nome das tabelas envolvidas>;
Combinação entre todos os registros das tabelas 
envolvidas;
WHERE <chave primária tabela 1> = <chave 
estrangeira tabela 2>;
SELECT nm_modelo, tp_cambio_modelo, 
id_placa_carro, nm_cor_carro from MODELO, 
CARRO WHERE MODELO.id_modelo = 
CARRO.id_modelo;
Seleção de Dados
Seleção de Dados
SELECT nm_modelo, tp_cambio_modelo, 
id_placa_carro, nm_cor_carro from MODELO, 
CARRO WHERE MODELO.id_modelo = 
CARRO.id_modelo AND tp_cambio_modelo = ‘a’;
SELECT nm_modelo, tp_cambio_modelo, 
id_placa_carro, nm_cor_carro from MODELO, 
CARRO WHERE MODELO.id_modelo = 
CARRO.id_modelo AND nm_cor_carro = ‘prata’;
Banco de Dados - I
Prática SQL (Oracle) Atualização de Dados - 23
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Prática SQL (Oracle) Atualização 
de Dados - 23
Para a atualizar um dado existente por um 
conteúdo novo dentro de uma tabela do Banco de 
Dados;
UPDATE <nome da tabela> SET <nome do campo> = 
‘valor novo’;
Atualiza todos os registros da tabela;
Atualização de Dados
Atualização de Dados
UPDATE CLIENTE SET nm_cliente = ‘merris’;
 Select * from cliente;
UPDATE CLIENTE SET id_cpf_cliente = ‘123’;
 Select * from cliente;
 Não pode mudar o valor da chave primária
Atualização de Dados
Com condição de seleção;
UPDATE <nome da tabela> SET <nome do campo> = 
‘novo conteúdo’ WHERE <condição de seleção>;
UPDATE CLIENTE SET nm_cliente = ‘merris’ WHERE 
nm_cliente = ‘adriane’;
UPDATE CLIENTE SET nm_cliente = ‘merris’ WHERE 
id_cpf_cliente = ‘55555555555’;
Atualização de Dados
Atualização de campo chave primária;
UPDATE CLIENTE SET id_cpf_cliente = ‘123’ WHERE 
id_cpf_cliente = ‘11111111111’;
 Não pode mudar o valor da chave primária
UPDATE CLIENTE SET id_cpf_cliente = ‘123’ WHERE 
nm_cliente = ‘roberto’;
 Tem registros filhos
Atualização de Dados
Atualização de campo chave estrangeira;
UPDATE CARRO SET id_modelo = 6 WHERE 
id_placa_carro = ‘HND0123’;
 O modelo 6 não existe
Atualização de Dados
Atualização de campo chave estrangeira;
Troca de pai de um registro filho;
UPDATE CARRO SET id_modelo = 1 WHERE 
id_placa_carro = ‘HND0123’;
 Modelo 1 é o crossfox (placa de um honda)
UPDATE CARRO SET id_modelo = 6 WHERE 
id_placa_carro = ‘HND0123’;
 Modelo 6 não existe(não existe o pai)
Banco de Dados - I
Prática SQL (Oracle) Remoção de Dados - 24
Análise e Desenvolvimento de Sistemas
Professor : 
ROBERTO YUKIO NISHIMURA
ESPECIALISTA EM ADMINISTRAÇÃO DA 
ENGENHARIA DE SOFTWARE
BANCO DE DADOS - I
Prática SQL (Oracle) Remoção de 
Dados - 24
Deleção de registros de uma tabela válida;
DELETE FROM <nome da tabela>;
Apaga todos os registros da tabela;
Remoção de Dados - Deleção
Remoção de Dados
DELETE FROM RESERVA;
 Remove todos os registros da tabela RESERVA;
DELETE FROM CLIENTE;
 Remove todos os registros da tabela CLIENTE;
Remoção de Dados
Deleção de registros selecionados;
DELETE FROM <nome da tabela> WHERE <condição 
de seleção>;
DELETE FROM RESERVA WHERE id_cpf_cliente = 
111111111111’;
Remoção de Dados
Deleção de registro “pai” e todos os registros “filho” 
ao mesmo tempo;
Deleção em CASCATA ou Infanticídio;
Na criação da tabela tem que ter a indicação;
Remoção de Dados
create table pai (a number (1) primary key);
create table filho (b number (1) primary key,
c number (1) , foreign key (c) references pai (a)
on delete );

Outros materiais