Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Bancos de Dados Relacionais: Tipos de Relações e Consultas, Manuais, Projetos, Pesquisas de Introdução a Banco de Dados

Este documento explica as vantagens de usar bancos de dados relacionais e apresenta os tipos de relações 1-1, 1-n e n-n, além de demonstrar como realizar consultas por coluna de chave estrangeira. O texto também aborda a necessidade de uma tabela de junção para relacionamentos muitos-para-muitos.

Tipologia: Manuais, Projetos, Pesquisas

2020

Compartilhado em 26/08/2020

gerailton-j-nascimento-8
gerailton-j-nascimento-8 🇧🇷

2 documentos

1 / 4

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Bancos de Dados Relacionais
1
Relação: 1–1, 1-n, nn
Por Peter Chang
As vantagens do banco de dados relacional incluem consulta de tabela unidas
(join table query) , evita duplicação de dados, evita registros inconsistentes,
melhor segurança, atende a requisitos futuros. Seu uso só traz benefícios aos
DBAs e programadores.
Ao longo dos últimos anos, construí algumas plataformas de E-commerce ou conteúdo
compartilhado pelo MongoDB e percebi que não é um banco de dados ideal para a arquitetura
de tabelas relacionais complexas (como usuário, permissão, produto ou relações de compra) e
os altamente volúveis requisitos por novos recursos (que causam registros e tipo de dados
inconsistentes). Isso acontece a cada poucos meses, quando novas exigências chegam até nós,
a correção de dados inconsistentes é complexa e dolorosa.
Conteúdo
Relação 1-1
Relação 1-n
Relação n-n
Para termos uma tabela padrão de produtos e fornecedores para este exemplo vamos usar o
seguinte:
mysql> SHOW DATABASES;
mysql> USE yourdatabse;
mysql> CREATE TABLE product_details (
productID INT UNSIGNED NOT NULL,
-- mesmo tipo de dados que a tabela pai
comment TEXT NULL,
-- até 64KB
PRIMARY KEY (productID),
FOREIGN KEY (productID) REFERENCES products(productID)
);
mysql> CREATE TABLE IF NOT EXISTS products (
productID INT UNSIGNED NOT NULL AUTO_INCREMENT,
productCode CHAR(3) NOT NULL DEFAULT '',
name VARCHAR(30) NOT NULL DEFAULT '',
quantity INT UNSIGNED NOT NULL DEFAULT 0,
price DECIMAL(7,2) NOT NULL DEFAULT 99999.99,
supplierID INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (productID)
);
pf3
pf4

Pré-visualização parcial do texto

Baixe Bancos de Dados Relacionais: Tipos de Relações e Consultas e outras Manuais, Projetos, Pesquisas em PDF para Introdução a Banco de Dados, somente na Docsity!

Relação: 1–1, 1-n, nn

Por Peter Chang

As vantagens do banco de dados relacional incluem consulta de tabela unidas

(join table query) , evita duplicação de dados, evita registros inconsistentes,

melhor segurança, atende a requisitos futuros. Seu uso só traz benefícios aos

DBAs e programadores.

Ao longo dos últimos anos, construí algumas plataformas de E-commerce ou conteúdo

compartilhado pelo MongoDB e percebi que não é um banco de dados ideal para a arquitetura

de tabelas relacionais complexas (como usuário, permissão, produto ou relações de compra) e

os altamente volúveis requisitos por novos recursos (que causam registros e tipo de dados

inconsistentes). Isso acontece a cada poucos meses, quando novas exigências chegam até nós,

a correção de dados inconsistentes é complexa e dolorosa.

Conteúdo

 Relação 1-

 Relação 1-n

 Relação n-n

Para termos uma tabela padrão de produtos e fornecedores para este exemplo vamos usar o

seguinte:

mysql> SHOW DATABASES; mysql> USE yourdatabse; mysql> CREATE TABLE product_details ( productID INT UNSIGNED NOT NULL, -- mesmo tipo de dados que a tabela pai comment TEXT NULL, -- até 64KB PRIMARY KEY (productID), FOREIGN KEY (productID) REFERENCES products(productID) ); mysql> CREATE TABLE IF NOT EXISTS products ( productID INT UNSIGNED NOT NULL AUTO_INCREMENT, productCode CHAR(3) NOT NULL DEFAULT '', name VARCHAR(30) NOT NULL DEFAULT '', quantity INT UNSIGNED NOT NULL DEFAULT 0, price DECIMAL(7,2) NOT NULL DEFAULT 99999.99, supplierID INT UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (productID) );

Relação 1– 1

O que ocorre se houver outra tabela chamada product_details e vinculá-la a produtos com um

relacionamento um-para-um, conforme ilustrado anteriormente?

Escrever coluna de chave estrangeira

mysql> INSERT INTO product_details VALUES (1001, ‘good one’);

Relação de consulta por coluna de chave estrangeira

mysql> SELECT products.productID,price,product_details.comment FROM products JOIN product_details ON products.productID = product_details.productID WHERE price < 5;

Relação 1-n

Vamos dizer que cada produto tem um fornecedor, e cada fornecedor fornece um ou mais

produtos, o produto do fornecedor é baseado no modelo de relação 1-n. Para implementar a

relação 1-n, tecnicamente é a mesma que a relação 1–1, apenas certifique-se de que não mais

que o número de linhas tenha relação com o mesmo produto.

Inserir relação

Tabela relacionada de consulta 3

Use SELECT com JOIN para consultar dados das 3 tabelas, por exemplo,

mysql> SELECT products.name AS Product Name, price, suppliers.name AS Supplier Name FROM products_suppliers JOIN products ON products_suppliers.productID = products.productID JOIN suppliers ON products_suppliers.supplierID = suppliers.supplierID WHERE price < 5 AND products.name = "Pen Red1" AND suppliers.name = "QQ Corp";

Resumo

Se você usar relacionamentos muitos-para-muitos, será necessário introduzir uma tabela JOIN

(ou tabela de junção) que contém chaves estrangeiras de ambas as tabelas participantes, o

que aumenta ainda mais os custos operacionais da junção.