Buscar

Implementação de Banco de Dados - Aula 1

Prévia do material em texto

Implementação de Banco de Dados Aula 1 
Professor Daniel Silos - 3ª edição - 2014 
dsilos@live.estacio.br 
Introdução ao Modelo Relacional 
• E.F. Codd ou Edgard Frank Codd 
• Quem foi? 
• Onde trabalhava? 
• Quando criou o modelo? 
 
 
 
 
 
 
 
Modelo Relacional 
 
Produtos de SGBD 
 
Baseados 
Modelo relacional de dados 
(Sistemas relacionais) 
 
 
Sistemas Relacionais 
• Literatura inglesa 
– DBMS + Relational = RDBMS (Relational Database 
Management System) 
• Modelo Relacional 
– Evento mais importante em toda história da área 
de Banco de Dados 
 
 
Modelo Relacional 
 
Baseia-se 
Lógica e 
Matemática 
O que é um sistema relacional ? 
• Definição Introdutória 
• De modo abreviado (e informal), um sistema 
relacional é aquele no qual: 
1. Os dados são percebidos pelo usuário como tabelas 
(e nada além de tabelas) 
2. Os operadores à disposição dos usuários (por 
exemplo para recuperação de dados) são operadores 
que “geram” novas tabelas a partir das tabelas 
originais. 
(DATE, 2000) 
 
Restrição e Projeção (DATE, 2000) 
• Operador restrição (ou seleção) 
– Extrai um subconjunto das linhas de uma 
determinada tabela 
• Operador Projeção 
– Extrai um subconjunto das colunas de uma 
determinada tabela 
Exemplos: 
 • A tabela abaixo representa um arquivo simples 
de filmes. 
Tabela Filmes 
Restrição: 
SELECT TITULO, ANO, QTD 
FROM FILMES 
WHERE ANO > 2007; 
Resultado: 
 
Projeção: 
SELECT TITULO, QTD 
FROM FILMES 
Resultado: 
 
Campos 
R
eg
is
tr
o
s 
TABELA: PRODUTOS 
TABELA: PRODUTOS 
Colunas 
Li
n
h
as
 
Atributos 
Tu
p
la
s 
TABELA: PRODUTOS 
Busca: 
SELECT MODELO, COD_PRODUTO, QTD 
FROM PRODUTOS 
WHERE ANO_LANCAMENTO = 2012 
RESULTADO: 
 
Seleção ou Projeção ? 
Porque “sistemas relacionais”? 
• Seria por causa do relacionamento presente 
no Modelo Entidade e Relacionamento? 
– Não! 
• A razão pelas quais tais sistemas são ditos 
“relacionais” é que o termo relação e tabela 
podem ser considerados sinônimos 
(propósitos informais) (DATE, 2000). 
• Dados são guardados em tabelas (ou, 
matematicamente falando, relações). 
 
Estrutura Relacional 
 
 
Estrutura básica: 
Formalmente, dado os conjuntos D1, D2, …. Dn 
uma relação r é um subconjunto de 
D1 x D2 x … x Dn 
Então, uma relação é um conjunto de n-tuplas 
(a1, a2, …, an) onde cada ai  Di 
 
• Exemplos: Se 
– nome_cliente = {Jones, Smith, Curry, Lindsay, …} 
 /* conjunto de todos os nomes de clientes */ 
– endereço_cliente = {Main, North, Park, …} /* conjunto de todos os 
endereços de clientes*/ 
– cidade_cliente = {Harrison, Rye, Pittsfield, …} /* conjunto de todas as 
cidades de clientes */ 
Então r = { (Jones, Main, Harrison), 
 (Smith, North, Rye), 
 (Curry, North, Rye), 
 (Lindsay, Park, Pittsfield) } 
 é uma relação sobre 
 nome_cliente x endereço_cliente x cidade_cliente 
Tipos de Atributos: 
• Cada atributo de uma relação tem um nome 
• O conjunto de valores permitidos para cada atributo é chamado de 
domínio do atributo. 
• Valores de atributos são (normalmente) atômicos, isto é, 
indivisíveis 
– Exemplo: O valor de um atributo pode ser o número de uma 
conta, mas não pode ser um conjunto de números de contas. 
• Domínio é dito atômico se todos os seus membros são atômicos. 
• O valor especial null (nulo) é um membro de cada domínio. 
• Valores nulos causam complicações nas definições de muitos 
operadores. 
– Por hora ignore a existência e efeitos de valores nulos. 
 
Esquema de Relação 
• A1, A2, …, An são atributos 
• R = (A1, A2, …, An ) é um esquema de relação. 
 Exemplo: 
 esquema_cliente = (id_cliente, nome_cliente, 
endereço_cliente, cidade_cliente) 
• r(R) denota uma relação r sobre o esquema de relação R 
 Exemplo: 
 cliente (esquema_cliente) 
• Outros exemplos 
 
Instância de Relação 
• Consiste no conjunto de valores que cada atributo, definido 
no esquema, assume em um determinado instante, formando 
o conjunto de tuplas. 
• Ex: 
numero_conta nome_agencia saldo 
Relações não são ordenadas 
 Ordem de tuplas é irrelevante (tuplas podem ser armazenadas em uma 
ordem arbitrária) 
 Exemplo: relação de conta com tuplas não ordenadas. 
 numero_conta nome_agencia saldo 
Base de Dados 
• Uma base de dados consiste de múltiplas relações 
• Informação sobre uma empresa é separada em partes, com 
cada relação armazenando uma parte da informação. 
–conta: armazena informações de contas 
– depositante: armazena informação sobre qual cliente é titular 
 de qual conta 
– cliente: armazena informações de clientes 
Base de Dados 
• Armazenamento de todas as informações como uma relação 
singular tal como: 
 banco(numero_conta, saldo, nome_cliente, ..) 
resulta em 
– Repetição de informação 
• Ex: Se dois clientes são correntistas de uma conta (O que é 
repetido?) 
– A necessidade de valores nulos 
• Ex: para representar um cliente sem uma conta. 
• Teoria de Normalização lida com como criar esquemas relacionais. 
 
• A Relação cliente 
nome_cliente endereco_cliente cidade_cliente 
• A Relação correntista 
nome_cliente numero_conta 
Chaves 
• Seja K  R 
• K é uma superchave de R se valores para K são suficientes para 
identificar uma única tupla de cada possível relação r(R) 
– Por “possível r ” quer dizer uma relação r que pode não existir 
na empresa em que esteja sendo modelada. 
– Exemplo: {nome_cliente, endereco_cliente} e 
 {nome_cliente} 
são ambas superchaves de cliente, se dois clientes não puderem 
ter o mesmo nome 
• Na vida real, um atributo tal como id_cliente poderia ser 
usado em vez de nome_cliente para representar clientes 
unicamente, mas identificadores serão omitidos 
temporariamente para tornar os exemplos menores. 
 
Chaves 
• K é uma chave candidata se K é mínima 
Exemplo: {nome_cliente} é uma candidata para clientes desde que 
ela seja uma superchave e que não seja parte de uma superchave 
como um subconjunto. 
• Chave Primária: uma chave candidata escolhida como principal 
meio de identificação de tuplas dentro de uma relação. 
– Deve-se escolher um atributo cujo valor nunca, ou muito 
raramente, muda. 
– Ex: conta de e-mail é única, mas pode mudar com relativa 
frequência. 
 
Chaves Estrangeiras 
• Um esquema de relação pode ter um atributo que corresponda a uma 
chave primária de uma outra relação. O atributo é chamado de chave 
estrangeira. 
– Ex: nome_cliente e numero_conta , atributos de depositante são 
chaves estrangeiras para clientes e conta respectivamente. 
– Somente valores que ocorrem no atributo de chave primária da 
relação referenciada podem ocorrer no atributo de chave estrangeira 
da relação referenciando . 
http://www.oracle.com/technetwork/products/express-edition/downloads/index.html 
Download do Oracle 11g Express 
Baixar: 
• Oracle Database Express Edition 11g release 2 for Windows x32; 
• Oracle SQL Developer 
– Este último basta descompacta. Sugiro jogar na mesma pasta onde o Oracle 
foi instalado. Aconselho também a criar um atalho para o SQL Developer no 
Desktop. 
 
 
 
Passos para poder criar ou utilizar um banco de 
dados. 
1) Após instalar o Oracle e o SQL Developer, 
execute o Run SQL Command Line ou 
Executar Linhas de Comando SQL. 
 
 
 
 
 
No Oracle, um esquemade banco de dados é 
associado a um usuário. Para criar um usuário, 
portanto, siga os seguintes passos: 
2) Digite na janela de comando após o cursor 
SQL> e em seguida pressione ENTER: 
conn <ENTER> 
O programa solicitará o nome do usuário que 
por padrão no Oracle 11g é ‘system’ 
Digite, portanto, system e pressione ENTER em 
seguida. 
3) Em seguida é solicitada uma senha. Esta 
senha foi criada no momento da instalação do 
Oracle Express 11g. Entre com a senha correta, 
pressione ENTER e a mensagem “conectado.” 
será exibida. 
 
 
 
4) Agora, novamente com o cursor SQL> ativo, 
crie um usuário (escolha o nome do esquema da 
relação, isto é, do banco de dados). 
Como primeiro exemplo, crie um esquema 
chamado empresa. Digite o comando, incluindo 
ponto e vírgula ao final e pressione ENTER em 
seguida: 
CREATE USER empresa IDENTIFIED BY estacio; 
 
OBS: estacio será a senha do usuário empresa 
 
 
 
 
 
 
5) Em seguida, para que este usuário possa se 
conectar ao banco, criar tabelas e fazer 
consultas, é necessário que ele tenha alguns 
privilégios. Para fornecer tais privilégios, digite o 
comando abaixo e pressione ENTER em seguida: 
GRANT CONNECT, RESOURCE TO empresa; 
 
 
 
 
 
 
Agora o usuário empresa estará apto a se 
conectar ao SGBD Oracle e a criar e consultar 
um banco de dados. Para tal, inicie o Oracle SQL 
Developer: 
 
 
 
 
 
 
Tela do Oracle SQL Developer 
 
 
 
 
 
 
Dica: 
Para visualizar número de linhas na edição de 
comandos de SQL, execute os seguintes passos: 
Clique na opção de menu Ferramentas e em 
seguida na opção Preferências. 
 
 
 
 
 
 
A seguinte janela surgirá: 
Abra as opções do Editor de Códigos à esquerda 
e em seguida clique em Fluxo de linha. Marque 
à direita na primeira opção de cima a check box 
ao lado esquerdo do texto Mostrar Números de 
Linha. 
 
Para criar agora uma conexão, na janela 
principal, na aba Conexões clique no ícone em 
sinal de uma cruz verde. Em seguida informe o 
nome da conexão, o nome do usuário e a senha. 
Com o propósito de criarmos um padrão que 
facilite a compreensão, utilizaremos um prefixo 
Con + Nome_do_usuário. Portanto, neste 
primeiro exemplo, o nome da conexão será 
ConEmpresa, o usuário empresa e a senha 
estacio. 
A opção Salvar senha pode ser marcada para 
que não seja necessário digitar a senha todas as 
vezes que for se conectar ao banco. 
Para finalizar a criação da conexão, clique no 
botão Conectar. 
 
 
Copie para o seu computador o arquivo 
empresa.sql e em seguida, abra-o pelo Oracle 
Developer SQL, clicando no botão abrir e em 
seguida acessando o caminho do arquivo. 
 
 
Existem duas maneiras de se executar instruções 
no Oracle SQL Developer. Veja a tabela abaixo: 
 
 
Função Efeito Ícone Atalho 
Executar Instrução 
Executa apenas a instrução sobre a 
qual o cursor se encontra. 
CTRL + ENTER 
Executar Script 
Executa todas as instruções presentes 
no script. 
F5 
Vamos agora juntos tentar responder às 
perguntas presentes ao final do arquivo 
empresa.sql na forma de comentários. 
 
 
• Como acessar o material desta disciplina no SIA? 
 
• Após logar-se no SIA, acesse a opção Sala de 
Aulas Virtuais e em seguida clique em Minhas 
Disciplinas Presenciais 
 
 
• Você acessará o portal do aluno e em seguida 
deverá clicar em disciplinas. 
• Acesse a disciplina desejada (neste caso, como 
exemplo, a disciplina é Linguagem de 
Programação) e clique no ícone de seta dupla 
direcionada para baixo para expandir algumas 
opções. Em seguida acesse o ícone Biblioteca da 
disciplina. 
 
 
 
 
• O material disponibilizado pelo professor até o 
momento do acesso surgirá(no exemplo abaixo 
não há material, mas é por meio destes passos 
que você obtém acesso a ele). 
• Bibliografia 
– DATE, C. J. Introdução a sistemas de banco de 
dados. 7ª ed. Rio de Janeiro: Campus, 2000. 
– HEUSER, C. Projeto de Banco de Dados. Porto 
Alegre: Sagra Luzzato, 1998 (Série de Livros 
Didáticos, número 4). 
– SILBERSCHATZ, Abraham; KORTH, Henry F; 
SUDARSHAN, S. A. Sistema de banco de dados. 5ª 
ed. Rio de Janeiro: Campus, 2006 
– ELMASRI, R.; NAVATHE, S., Sistemas de Banco de 
Dados. Pearson Education do Brasil, 4ª.Ed 2005. 
– Manual do Oracle.

Continue navegando