Вы находитесь на странице: 1из 56

Introduo aos Bancos de

Dados Relacionais

Definio
Banco de dados uma coleo de
dados relacionados
Sistema Gerenciador de Banco
de Dados (SGBD) uma coleo de
programas que permite aos usurios
criar e manter um banco de dados.

Principais funes de um
SGBD
Proteo contra defeitos, falhas,
acesso indevido
Manuteno/evoluo dos dados
Pesquisa em dados

Modelo Relacional
Criado em 1970, por Ted Codd na IBM
Implementado amplamente no final
de 1970s e incio de 1980s
Exs: Oracle, DB2, SQLServer, Sybase,
MySQL, MariaDB, PostgreSQL, Ingres

Modelo relacional
Banco de dados representado como
coleo de relaes/tabelas
Esquema relacional R(A1, A2, A3, ,
An) composto por:
Um nome R
Uma lista de atributos A com tipos
Ex. Aluno (Nome, CPF, Telefone, Idade)

Modelo Relacional
Uma relao r do esquema relacional
um conjunto de n tuplas r
Ex.:

Modelo Relacional
Cada valor em uma tupla atmico.
Atributos compostos (multivalorados)
devem ser representados por
relaes separadas.
Valores NULL so usados quando o
valor dos atributos desconhecido
ou no se aplica.
Relacionamentos podem ser
representados por tabelas.

Modelo Relacional Exemplos


Disciplina (Nome, CodDisci,
CargaHoraria)
Relacionamento aluno entre
disciplina: cursa
Cursa (CPF, CodDisci)

Conceito de Chave
Duas ou mais tuplas podem ter
alguns valores comuns, mas no
podem ter todos os valores iguais
O valor de um atributo de chave
pode ser usado para identificar
exclusivamente cada tupla na
relao
A chave primria identifica
unicamente uma tupla

Esquema de banco de dados


relacional
Conjunto de esquemas de relao e
um conjunto de restries de
integridade.

Exemplo de Esquema

Restries
Integridade de entidade: nenhum
valor de chave primria pode ser
NULL.
Integridade referencial: uma tupla
em uma relao que referencia outra
relao precisa se referir a uma tupla
existente nesta relao.

Restries
Em funcionrio, DeptoNro precisa
combinar com o valor de Dnumero
de alguma tupla na relao
Departamento.
Restries de integridade referencial
so frequentes em relacionamentos
entre entidades em esquemas.

Chave estrangeira
DeptoNro chave estrangeira (Foreign Key FK) de Funcionrio que referencia a relao
Departamento.
Isso significa que:
Um valor de DeptoNro em qualquer tupla T1 da
relao Funcionrio precisa combinar com um valor
da chave primria de Departamento (atributo
Dnumero) em alguma tupla T2 de Departamento.
Ou DeptoNro NULL se o funcionrio no pertencer
a um Departamento ou ser atribudo
posteriormente.

Diagrama de restries de
integridade referencial
Arco direcionado de cada chave
estrangeira para a chave primria da
relao referenciada.

Linguagem SQL
Linguagem padro para manipular
bancos de dados relacionais
Principais instrues:
Definio de dados
Consulta de dados
Especificao de segurana e
autorizao
Definio de restries de integridade

Nomenclaturas
Modelo Relacional

SQL

Relao

Tabela

Tupla

Linha

Coluna

Atributo

Comando Create Table


Especifica uma nova tabela com
nome, atributos e restries iniciais
A tabela armazenada fisicamente
no SGBD

Comandos SQL
Os comandos a seguir foram
testados no MySQL 5, em linha de
comando.
Apesar da padronizao, pode haver
variaes dependendo do banco de
dados usado

Comando SHOW
show databases;
Mostra os bancos de dados
existentes no MySQL.

Comando SHOW
show tables;
Mostra todas as tabelas de um banco
de dados.

Comando USE
use <name of a database>;
Usa o banco de dados especificado
em <>
O resultado "Database changed".

Comando CREATE
DATABASE
create database
Sintaxe:
create database [if not exists]
<databasename>;

Ex. create database banco;

Tipos de Dados
Numrico: INTEGER ou INT,
SMALLINT, FLOAT ou REAL, DOUBLE
PRECISION
O formato dos nmeros pode ser
declarado usando DECIMAL (i,j).
i: total de dgitos decimais
J: dgitos aps ponto decimal

Tipos de Dados
Sequncia de Caracteres
Fixo: CHAR(n)
Varivel: VARCHAR (n)

Tipos de Dados
Booleano: TRUE ou FALSE
Date: 10 posies: DD-MM-YYYY
Hour: 8 posies: HH:MM:SS

Ex. Tabela funcionrio

Ex. Tabela Departamento

Especificao de Restries
NOT NULL:
default para chave primria
Pode ser especificada para qualquer
atributo

DEFAULT:
Valor padro definido a um atributo

Ex.: Dnum INT NOT NULL DEFAULT 1,

Especificao de Restries
PRIMARY KEY:
Especifica um ou mais atributos que
compem a chave primria de uma
tabela

FOREIGN KEY:
Especifica a integridade referencial
entre tabelas

Especificao de Restries
A ao default que a SQL toma para
uma violao de integridade
referencial rejeitar a operao

Especificao de Restries
Pode-se especificar uma ao
alternativa conectando uma clusula
de ao de disparo referencial
Opes: SET NULL, CASCADE e SET
DEFAULT
A opo usada nas operaes ON
DELETE ou ON UPDATE.

Exemplo de especificao de
restries

Exemplo de especificao de
restries
Se um funcionrio supervisor for excludo:
CPFSup automaticamente definido como
NULL para todas as tuplas funcionrio que
referenciavam o supervisor excludo.

Se o CPF de supervisor alterado, o novo


valor ser propagado em cascata de
CPFsup para todas as tuplas de
funcionrio que referencia a tupla de
funcionrio atualizada.

Comando ALTER TABLE


Usado para mudar uma tabela aps
esta ter sido criada.

Consultas com SQL comando


Select

Operadores SQL

=
<
<=
>
>=
<>

Exemplos
Recuperar a data de nascimento e o
endereo do funcionrio de nome
Joo B. Silva.

Exemplos
Recuperar todos os CPFs de todos
funcionrios

Exemplos
Recuperar todos os dados de
departamento

Exemplos
Recuperar todos os funcionrios e
mostrar o resultado ordenado.

Pesquisa em strings
possvel testar substrings usando
LIKE e
NOT LIKE

Exemplos
Selecionar todos os funcionrios cujo
primeiro nome inicia com M.

Exemplos
Selecionar todos os departamentos
que tm a letra A no nome como
segunda letra.
O _ substitui um caractere

Exemplos
Selecionar todos os funcionrios cujo
nome no seja Maria

Exemplos
Recuperar o nome e o endereo de
todos os funcionrios que trabalham
para o departamento financeiro.

Condio de juno

A Clusula Dnumero = Dnr


chamada condio de juno.
Combina duas linhas: uma de
departamento e uma de funcionrio.

Qualificao de atributos
Pode-se em SQL qualificar o nome de
atributos para evitar ambiguidade.
Ex. SELECT Pnome,
Funcionario.nome,
Departamento.endereco.

Exemplos
Selecionar todos os funcionrios que
nasceram na dcada de 1950.

Exemplos
Selecionar todos os funcionrios no
departamento 4 cujo salrio esteja
entre R$2.000,00 e R$3.000,00.

Exemplos
Selecionar todos os funcionrios no
departamento 4 cujo salrio esteja
entre R$2.000,00 e R$3.000,00.

Comando INSERT
INSERT: usado para acrescentar
linhas em tabelas j existentes.

Comando DELETE
DELETE: remove tuplas de uma
tabela.

Comando DELETE
Ex.: DELETE FROM Funcionario;
Neste caso, todas as linhas so
excludas.
A Tabela permanece.
Para remover a tabela:
DROP TABLE Funcionario;

COMANDO UPDATE
UPDATE: Modifica valores de atributo
de uma ou mais linhas.

Exemplo de UPDATE
Aumentar em 10% todos os salrios
de funcionrios de um
departamento.