Vous êtes sur la page 1sur 7

Banco de Dados II aula 1 Unidade 1 - lgebra Relacional 1 - Operaes Fundamentais da lgebra Relacional 1.

.1 - Seleo ou restrio: Retorna uma relao contendo todas as tuplas de uma dada relao que satisfazem a uma condio especificada. Tuplas selecionadas

1.2 - Projeo: Retorna uma relao aps terem sido removidos os atributos desejados.

Colunas selecionadas

2 - Operaes da lgebra Relacional derivadas da Teoria de Conjuntos 2.1 - Unio: A relao resultante, R S, formada por todas as tuplas que aparecem em uma das relaes ou em ambas as relaes

Restrio de compatibilidade As relaes devem ter tuplas homogneas ou compatveis para que seja efetivada a unio; 2 tabelas so compatveis para unio se: o possuem o mesmo esquema, isto , se tiverem o mesmo conjunto de atributos e; o os domnios dos atributos correspondentes (mesma coluna) devem ser idnticos. 2.2 - Interseo: A relao resultante, R S, formada por tuplas que aparecem em ambas as relaes.

2.3 - Diferena: A relao resultante, R - S, consiste nas tuplas que aparecem em uma relao e no aparecem em outra

S
X Y C Y

. 2.4 - Produto: A relao resultante consiste na combinao de todas as tuplas possveis, onde cada tupla pertence a uma relao.

B A X

C A Y B X

X B Y C X

Exemplos: A #For NomeFor F1 Forn1 F2 Forn2 F3 Forn3 F4 Forn4 F5 Forn5 123456-

Classe A B C D E

Cidade Rio Rio Recife Recife B. Horizonte

B #Prod P1 P2 P3 P4 P5 P6

NomeProd Prod1 Prod2 Prod3 Prod4 Prod5 Prod6

Tamanho 1 2 1 3 3 1

Preo 500,00 550,00 600,00 650,00 700,00 750,00

Cidade Rio Rio Recife Recife Rio Curitiba

Unio: A1 (apenas F1 e F2) U A2 (apenas F1 e F4) = (F1, F2, F4) Interseo: A1 A2 = (F1) Diferena: A1 A2 = (F2) Produto: A1 x B1 (apenas P1 e P2) = (F1,P1, F1,P2,F2,P1,F2,P2) Seleo: Sintaxe: <condio de seleo>(<nome da relao>) Exemplo: CIDADE = Rio(A) = (F1,F2) Projeo: Prod, NomeProd, Tamanho(B) = (P1 + Prod1 + 1, P2 + Prod2 + 2, ...)

Banco de Dados II aula 2 3 Juno (natural) Retorna uma relao contendo todas as tuplas, que so combinaes de 2 tuplas e, que possuem um atributo com valor comum. Este valor comum aparece apenas uma vez na tupla resultante, no caso da juno natural. A1 A2 A3 4 Equijuno Retorna uma relao contendo todas as tuplas, que so combinaes de 2 tuplas e, que possuem um atributo com valor comum. Mantendo-se esta coluna na relao resultante, ou seja, redundncia. A1 A2 A3 B1 B2 B3 B1 B2 B3 C1 C2 C3 A1 A2 A3 B1 B2 B3 B1 B2 B3 C1 C2 C3 B1 B2 B3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

Esta operao pode ser compreendida como a seguinte sequncia de operaes: um produto cartesiano; uma seleo para eliminar algumas tuplas cujos critrios so especificados como parte da juno; por ltimo, opcionalmente, realizada uma remoo de alguns atributos por meio de uma projeo. 5 Funes de agrupamento Recuperar a mdia ou o total salarial de todos os empregados ou o nmero de tuplas de empregados, pode ser uma ao plausvel e at rotineira. Entretanto As funes de agrupamento sobre colees de valores da base de dados no podem ser expressas na lgebra relacional. As funes normalmente aplicadas para colees de valores numricos so: SUM, AVERAGE, MAXIMUM e MINIMUM. A funo de contagem de tuplas normalmente chamada COUNT.

Exerccios (conjunto I): Sejam as relaes: Emprstimo (nome_agncia, nmero_emprstimo,total) Depositante (nome_cliente, nmero_emprstimo) Devedor (nome_cliente, nmero_emprstimo)

responder as perguntas em lgebra Relacional: 1. Selecionar as tuplas da relao emprstimo, cuja agncia Carioca. 2. Encontrar as tuplas cujos totais so superiores a R$ 1500,00. 3. Encontrar as tuplas cujos totais so superiores a R$ 1500,00 realizados na agncia Carioca. 4. Relacionar todos os nmeros de emprstimos e totais desses emprstimos. 5. Encontrar os nomes de todos os clientes do banco que tenham uma conta, um emprstimo ou ambos (as relaes so compatveis) 6. Encontrar os nomes de todos os clientes do banco que tenham conta, mas no contraram emprstimo. Respostas: 1. nome_agncia= Carioca(Emprstimo) 2.

total > 1500(Emprstimo) 3. total > 1500 and nome_agncia= Carioca(Emprstimo) 4. nmero_emprtimo, total(Emprstimo) 5. nome_cliente(Depositante Devedor) 6. nome_cliente(Depositante - Devedor)
Exerccios (conjunto II): Com base nas relaes abaixo, responda as perguntas em lgebra Relacional: EMPREGADO (matrcula, nome, sobrenome, aniversrio, sexo, salrio, nr_depto); DEPARTAMENTO (depto_nr, nome, mat_gerente)

1. Selecionar os funcionrios que trabalham no Departamento de nmero 4, tem um salrio superior a R$ 15000,00 ou trabalham no Departamento 5 e tem um salrio superior a R$ 20000,00. 2. Listar o nome, sobrenome e salrio de todos os funcionrios. 3. Listar o nome, sobrenome e o salrio dos funcionrios que trabalham no departamento 5. 4. Retornar o nome dos gerentes de cada departamento. Respostas: 1. (nr_dpto = 4 and salrio > 1500) or (nr_dpto = 5 and salrio > 2000) (Empregado) 2. nome, sobrenome, salrio(Empregado) 3. nome, sobrenome, salrio(nr_dpto = 5 (Empregado)) 4.nome, sobrenome, salrio(nr_dpto = 5 (Empregado)) 5.

((nome,nr_depto ((matrcula,nome,nr_depto(Empregado))matrcula

mat_gerente

(mat_gerente(Departamento)))

Banco de Dados II aula3 Unidade 2: SQL Parte I (DDL)

1. Gerenciamento de Esquemas Um esquema uma coleo nomeada de objetos, provendo sua classificao lgica no banco de dados. O esquema pode conter tabelas, vises, apelidos, gatilhos, funes, pacotes e outros objetos, sendo ele mesmo um objeto. O nome do esquema utilizado como a parte de mais alta ordem de um nome de objeto de duas partes. Se o objeto for qualificado com um nome de esquema especfico ao ser criado, o objeto atribudo a este esquema. Se no for especificado nenhum nome de esquema ao criar um objeto, utilizado o nome de esquema padro. Os esquemas tambm possuem privilgios, permitindo ao dono do esquema controlar quais usurios possuem o privilgio de criar, alterar e remover objetos no esquema. Existem diversas razes pelas quais pode-se desejar utilizar esquemas:
Para

permitir vrios usurios utilizarem o mesmo banco de dados sem que um interfira com o outro. Para organizar objetos do banco de dados em grupos lgicos tornando-os mais gerenciveis. Aplicaes desenvolvidas por terceiros podem ser colocadas em esquemas separados para no haver coliso com nomes de outros objetos. Os esquemas so anlogos a diretrios no nvel do sistema operacional, exceto que os esquemas no podem ser aninhados. Todo banco de dados novo possui um esquema pblico, chamado "public". Se no for criado nenhum esquema, ento todos os usurios acessam o esquema pblico implicitamente, simulando a situao onde os esquemas no esto disponveis. Esta configurao recomendada, principalmente, quando existe no banco de dados apenas um usurio, ou alguns poucos usurios colaborativos. Esta configurao tambm permite uma transio suave de uma situao sem esquemas.

2. Gerenciamento de Tabelas Um banco de dados uma coleo de dados estruturados, podendo ser desde uma simples lista de compras at a grande quantidade de informao de uma rede corporativa. Um banco de dados relacional armazena dados em tabelas separadas, em vez de colocar todos os dados em um s local. A criao do banco de dados a parte mais fcil do gerenciamento. Difcil decidir qual a estrutura que o banco deve ter: quais tabelas sero necessrias e que colunas estaro em cada uma delas. Tipos de dados do MySql CHAR(M): strings de tamanho fixo entre 1 e 255 caracteres VARCHAR(M): strings de tamanho flexvel entre 1 e 255 caracteres INT(M): nmeros inteiros entre -2147483648 e 2147483647 FLOAT [(M,D)]: nmeros decimais com D casas decimais DATE: armazena informao relativa a datas. O formato default 'YYYY -MM-DD' TEXT/BLOB: strings entre 255 e 65535 caracteres. A diferena entre TEXT e BLOB que no primeiro o texto no case -sensitive. V Seminrio de Desenvolvimento em Software Livre Especificao de colunas Primary Key (Chave Primria): usada para diferenciar um registro do outro. Cada registro, desta forma, no pode ter a mesma chave primria. Foreign Key (Chave Estrangeira): usada para relacionar uma coluna de uma tabela com a coluna de outra tabela. Auto_increment: uma coluna com esta opo automaticamente incrementada quando da insero de um registro. NOT NULL: no permite a insero de valores nulos O Ambiente MySQL Para acessar o ambiente mysql cd c:\mysql\bin | mysqld | mysql h localhost u root Para descobrir os bancos de dados existentes: show databases; Para criar um banco: create database <banco>; Para conectar-se a um banco: use <banco>; Descobrir as tabelas do banco: show tables; Visualizar os campos de uma tabela: show fields from <tabela>; ou desc <tabela>; Para acessar o help: help ou ? ou \h ou \? Para executar scripts: \. <caminho\script[.extenso, se houver]> | exemplo: mysql> \. C:\sc1 V Seminrio de Desenvolvimento em Software Livre

2.1.Comandos CREATE, ALTER e DROP TABLE Criando uma tabela CREATE TABLE empresas (codigo integer auto_increment, nome varchar(50), primary key(codigo)); (codigo integer auto_increment, nome varchar(50), empresa integer, salario real, primary key(codigo), foreign key(empresa) references empresas (codigo));

CREATE TABLE pessoas

Livre Alterando uma tabela desc pessoas; alter table pessoas add data_nascimento date; alter table pessoas add telefone int; alter table pessoas drop telefone; alter table pessoas add telefone varchar (10); alter table pessoas modify telefone varchar(15); alter table pessoas change telefone fone varchar(15); alter table pessoas rename pessoal; V Seminrio de Desenvolvimento em Software Livre Apagando tabela e banco drop table pessoal; show tables; drop database teste; show databases;

Vous aimerez peut-être aussi