• Nenhum resultado encontrado

Banco de Dados. Colégio Singular. Curso Profissionalizante: Informática

N/A
N/A
Protected

Academic year: 2021

Share "Banco de Dados. Colégio Singular. Curso Profissionalizante: Informática"

Copied!
36
0
0

Texto

(1)

Banco de Dados

Colégio Singular

Curso Profissionalizante:

Informática

(2)

2

AGENDA



Armazenamento de Informações



Principais Tipos de Banco de Dados



Banco de Dados Relacional



Terminologia do Banco de Dados



Relacionando Várias Tabelas



Tipos de Relacionamentos



Introdução aos comandos SQL



Atividade

(3)

Armazenamento de Informações



Armário de Arquivo;



Planilhas Eletrônicas;



Banco de Dados;

(4)

Principais Tipos de Banco de Dados



Hierárquico;



De Rede;



Relacional;



Relacional de Objeto;

Banco de Dados Relacional

(5)

Banco de Dados Tradicional



-Alunos

Professor

Curso

Inscrição

Alunos

Funcionários

Mensalidades

Financeiro

Secretaria

Departamento de Contabilidade Departamento de

Programas de

contabilidade

Programas de

esportes

Programas da

aula

Arquivo da

aula

Arquivo de

contabilidade

Arquivo de

esportes

Atletas

Inf. Acad.

Equipes

Financeiro

(6)



-Banco de Dados Relacional

Alunos

Curso

Inscrição

Funcionários

Mensalidades

Financeiro

Time

Informações

Acadêmica

Secretaria

Departamento de Contabilidade Departamento de Esportes

Sistema de

gerenciamento

de banco de

dados

Programas de

contabilidade

Programas de

esportes

Banco de Dados Relacional

Programas da

aula

(7)



Dr. E. F. Codd Propôs o modelo relacional para banco de

dados em 1970;



Ele é a base para o RDBMS

(Relational Database Management System / Sistema de gestão de bases de dados relacionais );



O modelo relacional é composto de



Um conjunto de Objetos ou relações que armazenam dados;



Um conjunto de Operadores para agir sobre as relações;



Integridade de dados para precisão e consistência.

(8)

Definição e um Banco de dados Relacional

Banco de Dados Relacional é um conjunto

de relações ou tabelas de duas

dimensões.

(9)

Terminologia do Banco de Dados Relacional

CODIGO CPF NOME TIPO_PESSOA EST_CIVIL COD_END

0000969 99943898499 JUCELINO PEREIR M C 00009690 0000971 99995278635 ELSO DO COSTA M D 00009710 0000972 99991468728 FRANCISCO TEIXE M S 00009720 0000973 36151736999 DIVINO SILVA J O 00009731 0000974 99994399912 RENATO COSTA F S 00009740 0001480 99999343978 JOSE LUIZ M C 00014800 0001481 99961714275 ROBERTO TEIXEIRA M C 00014811 0001482 99975487381 MARINA DOS SANTOS F C 00014820 0001483 99991293393 JOSE OTAVIANO M C 00014830 0001484 99975517221 REINALDO FERREIRA M C 00014840 0001485 99999694294 MARCIO DE ALMEIDA M S 00014850

(10)

Terminologia do Banco de Dados Relacional

10

Banco de Dados Relacional

Dado x Informação

Dado: Conjunto de símbolos e sinais. Tudo que é captado pelos sentidos.

Informação: É a interpretação de um conjunto de dados. É o dado

transformado com um significado específico.

(11)

Terminologia do Banco de Dados

1-Linha (Identificada por chave primária, para impedir

linhas duplicadas);

2-Coluna, valor chave;

3-Coluna que não é valor chave;

4-Coluna, chave estrangeira;

5-Campo;

(12)

Terminologia do Banco de Dados Relacional

12

Banco de Dados Relacional

Linha Campo

Coluna que não é um valor chave.

Coluna , valor chave. Coluna chave estrangeira.

Campo nulo

Elementos da Tabela:

CODIGO CPF NOME TIPO_PESSOA EST_CIVIL COD_END

0000969 99943898499 JUCELINO PEREIR M C 00009690 0000971 99995278635 ELSO DO COSTA M D 00009710 0000972 99991468728 FRANCISCO TEIXE M S 00009720 0000973 36151736999 DIVINO SILVA J O 00009731 0000974 99994399912 RENATO COSTA F S 00009740 0001480 99999343978 JOSE LUIZ M C 00014800 0001481 99961714275 ROBERTO TEIXEIRA M C 00014811 0001482 99975487381 MARINA DOS SANTOS F C 00014820 0001483 99991293393 JOSE OTAVIANO M C 00014830 0001484 99975517221 REINALDO FERREIRA M C 00014840 0001485 99999694294 MARCIO DE ALMEIDA M S 00014850

(13)

Relacionando Várias Tabela



Cada Linha de dados de uma tabela é identificada

com exclusividade por uma PK (

Primary Key, Chave

primaria

);



É possível relacionar dados de várias tabelas por

(14)

Tipos de relacionamentos



Um para Muitos;



Um para Um;



Muitos para Muitos

(Livro x LivroAutor x Autor).

(15)
(16)

Tipos de Relacionamentos

(17)

Normalização de Tabelas



Normalização é um processo a partir do qual se aplicam regras a todas as

tabelas do banco de dados com o objetivo de evitar falhas no projeto, como

redundância de dados e mistura de diferentes assuntos numa mesma tabela.



Ao projetar um banco de dados, se temos um modelo de entidades e

relacionamentos e a partir dele construirmos o modelo relacional seguindo

as regras de transformação corretamente, o modelo relacional resultante

estará, provavelmente, normalizado. Mas, nem sempre os modelos que nos

deparamos são implementados dessa forma e, quando isso acontece, o

suporte ao banco de dados é dificultado.



Em ambos os casos, é necessário aplicar as técnicas de normalização, ou

para normalizar (segundo caso citado), ou apenas para validar o esquema

criado (primeiro caso citado). Aplicando as regras descritas a seguir, é possível

garantir um banco de dados mais íntegro, sem redundâncias e inconsistências.

(18)

Normalização de Tabelas



1FN – Um agrupamento de dados somente estará na 1FN se

não houver atributo ou conjunto de atributos em relação de

ocorrência.



2FN – Um agrupamento de Dados somente estará na 2FN se

os atributos não identificadores forem completamente

dependentes do(s) atributos(s) identificador(es).



3FN – Um agrupamento de dados somente estará na 3FN se

não houver relação de dependência entre os atributos não

identificadores.

(19)

Normalização de Tabelas



1FN - 1ª Forma Normal:

Todos os atributos de uma tabela devem ser

atômicos, ou seja, a tabela não deve conter grupos repetidos e nem atributos com mais de um valor. Para deixar nesta forma normal, é preciso identificar a chave primária da tabela, identificar a(s) coluna(s) que tem(êm) dados repetidos e removê-la(s), criar uma nova tabela com a chave primária para armazenar o dado repetido e, por fim, criar uma relação entre a tabela principal e a tabela secundária. Por exemplo, considere a tabela Pessoas a seguir.

PESSOAS = {ID+ NOME + ENDERECO + TELEFONES}

Ela contém a chave primária ID e o atributo TELEFONES é um atributo multivalorado e, portanto, a tabela não está na 1FN. Para deixá-la na 1FN, vamos criar uma nova tabela chamada TELEFONES que conterá PESSOA_ID como chave estrangeira de PESSOAS e

TELEFONE como o valor multivalorado que será armazenado.

PESSOAS = { ID + NOME + ENDERECO }

TELEFONES = { PESSOA_ID + TELEFONE }.

(20)

Normalização de Tabelas



2FN - 2ª Forma Normal:

Antes de mais nada, para estar na 2FN é preciso estar na 1FN. Além disso, todos os atributos não chaves da tabela devem depender

unicamente da chave primária (não podendo depender apenas de parte dela). Para deixar na segunda forma normal, é preciso identificar as colunas que não são funcionalmente dependentes da chave primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma nova tabela com esses dados. Por exemplo, considere a tabela ALUNOS_CURSOS a seguir.

ALUNOS_CURSOS = { ID_ALUNO + ID_CURSO + NOTA + DESCRICAO_CURSO }

Nessa tabela, o atributo DESCRICAO_CURSO depende apenas da chave primária ID_CURSO. Dessa forma, a tabela não está na 2FN. Para tanto, cria-se uma nova tabela

chamada CURSOS que tem como chave primária ID_CURSO e atributo DESCRICAO retirando, assim, o atributo DESCRICAO_CURSO da tabela ALUNOS_CURSOS.

ALUNOS_CURSOS = {ID_ALUNO + ID_CURSO + NOTA} CURSOS = {ID_CURSO + DESCRICAO}

(21)

Normalização de Tabelas



3FN - 3ª Forma Normal:

Para estar na 3FN, é preciso estar na 2FN. Além disso, os atributos não chave de uma tabela devem ser mutuamente independentes e dependentes unicamente e exclusivamente da chave primária (um atributo B é

funcionalmente dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para atingir essa forma normal, é preciso identificar as colunas que são

funcionalmente dependentes das outras colunas não chave e extraí-las para outra tabela. Considere, como exemplo, a tabela FUNCIONARIOS a seguir.

FUNCIONARIOS = { ID + NOME + ID_CARGO + DESCRICAO_CARGO }

O atributo DESCRICAO_CARGO depende exclusivamente de ID_CARGO (atributo não chave) e, portanto, deve-se criar uma nova tabela com esses atributos. Dessa forma, ficamos com as

seguintes tabelas:

FUNCIONARIOS = { ID + NOME + ID_CARGO } CARGOS = { ID_CARGO + DESCRICAO }

(22)

Normalização de Tabelas



Como exercício, normalize a tabela EMPREGADOS a seguir:

(23)

Tipos de dados



Tipos de dados definem os tipos de informação que podem ser inseridos em

um campo. Os tipos suportados por um banco de dados podem variar de

SGBD para SGBD, seguem os principais tipos encontrados na maior parte dos

gerenciadores:

Tipo Abreviação Genérica Descrição

INTEIRO INT

Números inteiros. Existem outros tipos de números inteiros de acordo com o gerenciador utilizado.

REAL FLOAT

Números reais. Permitem armazenar todo tipo de número não inteiro. Existem outros tipos de números reais de acordo com o gerenciador utilizado.

CARACTER

CHAR (NÚMERO)

Caracter. Permite a inclusão de dados alfanuméricos com tamanho pré-definido. O número de caracteres é definido entre os parênteses.

CARACTER VARIÁVEL

VARCHAR (NÚMERO)

Caracter. Permite a inclusão de dados alfanuméricos. O número de caracteres é definido entre os parênteses, porém o número de bytes utilizados pelo campo é de acordo com o dado inserido.

DATA DATE

Data. Existem diversos tipos de datas de acordo com o gerenciador utilizado.

(24)

Instruções SQL



DML(Data Manipulation Language)



DDL(Data Definition Language)



Controle de Transações



DCL (Data Control Language)

(25)

Instruções SQL



DML(Data Manipulation Language)

Select;

Insert;

Update;

Delete;

Merge.

Selecionar/Recuperar Dados, informar novas linhas, alterar linhas

existentes e excluir linhas desnecessárias das tabelas do banco

de dados.

(26)

Instruções SQL



DDL(Data Definition Language)

Create;

Alter;

Drop;

Rename;

Truncate;

Comment.

26

Banco de Dados Relacional

Possibilita que o profissional, configure, altere e remova estruturas

de dados nas tabelas .

(27)

Instruções SQL



Controle de Transações

Commit;

Rollback;

SavePoint;

Gerencia as alterações realizadas por instruções DML. Permite o

agrupamento das alterações de dados de acordo com transações

lógicas.

(28)



DCL(Data Control Language)

Grant;

Revoke.

28

Banco de Dados Relacional

Administra, concedendo ou retirando acessos ao banco de dados

e as estruturas nele contidas.

(29)

Introdução aos Comandos SQL



Versão do Banco

mysql> SELECT VERSION(), CURRENT_DATE;

+---+---+ | version() | CURRENT_DATE | +---+---+ | 3.22.20a-log | 1999-03-19 | +---+---+

1 row in set (0.01 sec)



Para sair do MySql

(30)



O mysql como uma calculadora simples

mysql> SELECT 2+2, (4+1)*5; +---+---+ | 2+2 | (4+1)*5 | +---+---+ | 4 | 25 | +---+---+



Cancelar a Consulta digite “\c”

mysql> SELECT -> USER() -> \c

mysql>

30

Banco de Dados Relacional

(31)



Múltiplas instruções em uma única linha

mysql> SELECT VERSION(); SELECT NOW();

+---+ | VERSION() | +---+ | 3.22.20a-log | +---+ +---+ | NOW() | +---+ | 1999-03-19 00:15:33 | +---+

(32)



Quais Bancos de Dados existem no Servidor

mysql> SHOW DATABASES;

+--- + | Database | +--- + | mysql | | test | | tmp | +--- +



Criando um Banco de Dados

mysql> CREATE DATABASE menagerie;

( Case sensitive )



Utilizando um Banco de dados

mysql> USE menagerie;

32

Banco de Dados Relacional

(33)



Visualizando as Tabelas;

mysql> show tables;



Criando uma Tabela;

CREATE TABLE nome_tabela

( nome_campo_1 tipo_1 PRIMARY KEY , nome_campo_2 tipo_2 NOT NULL

, ... nome_campo_n tipo_n DEFAULT ‘SP’ (PADRÃO)

);

ou

CREATE TABLE nome_tabela

( nome_campo_1 tipo_1

, nome_campo_2 tipo_2 NOT NULL (REQUIRED) , ... nome_campo_n tipo_n

, PRIMARY KEY (nome_campo_1,...)

(34)

34

Banco de Dados Relacional

Introdução aos Comandos SQL



Criando uma Tabela;

CREATE TABLE TB_CLIENTES

( COD_CLIENTE INT(10) NOT NULL PRIMARY KEY , NOME VARCHAR(80) NOT NULL

, DT_CADASTRO DATE NOT NULL

, STATUS CHAR(1) NOT NULL DEFAULT ‘1’ , CREDITO FLOAT(12,2) NOT NULL

);

ou

CREATE TABLE TB_CLIENTES

( COD_CLIENTE INT(10) NOT NULL , NOME VARCHAR(80) NOT NULL , PRIMARY KEY (COD_CLIENTE)

(35)

Introdução aos Comandos SQL



Auto Incremento

Para definir um campo como

auto-incremento

, devemos inserir

AUTO_INCREMENT

na frente do campo determinado. Automatiza o

código chave primária de uma tabela;

CREATE TABLE TB_CLIENTES

( COD_CLIENTE INT(10) NOT NULL AUTO_INCREMENT , NOME VARCHAR2(80) NOT NULL

, PRIMARY KEY (COD_CLIENTE) );



Visualizar a descrição de uma tabela;

mysql> describe TB_CLIENTES;

Ou

(36)



Chave Estrangeira

Tem como finalidade estabelecer as relações entre duas ou mais tabelas de um

Banco de Dados. A chave estrangeira referencia o campo que é chave primária

de outra tabela.

FOREIGN KEY (Campo1, Campo2, Campo3 ...) REFERENCES Nome_Tabela2 (Nome_Chave);

CREATE TABLE TB_CLIENTES

( COD_CLIENTE INT(10) NOT NULL AUTO_INCREMENT , NOME VARCHAR(100) NOT NULL

, COD_END INT(10)

, PRIMARY KEY (COD_CLIENTE)

, FOREIGN KEY (COD_END) REFERENCES TB_ENDERECO (COD_END)

);

36

Banco de Dados Relacional

Referências

Documentos relacionados

Uma ilustração bem conhecida dessa prática é o conjunto de unidades lexi- cais que costumava constar no final do texto introdutor da lição do livro didático seguidas de

RESUMO: Objetivo: Pesquisar a presença de fibras de músculo liso (FML) nos sacos peritoneais das hérnias indiretas, diretas, recidivadas e encarceradas e estudar a influência do

04- Em uma tabela de um banco de dados relacional, se uma restrição de chave primária for definida como composta de mais de uma coluna, os seus valores poderão ser duplicados em

foi conduzido um experimento, em delineamento de blocos ao acaso, para estudar a produção de mudas em dois tamanhos de tubetes: grande (TG) e médio (TM), e duas

Atenção para as diferentes culturas ali elencadas: agricultura (pelo visto não se trata de uma atividade humana, mas de uma cultura, pois isso está no nome).. Caça

Débitos tributários e condominiais (propter rem) serão sub-rogados no valor da arrematação (art.. interessados a pesquisar e confirmar diretamente nos órgãos competentes,

A Prefeitura de nossa cidade está vivendo bom momento economica- mente, mesmo tendo gastos com a pandemia, ainda assim, o vereador Marcos Nem (PSD) disse que no perí- odo de chuva

Neste sentido, as soluçons propostas passam pola introduçom do livro galego no mercado português; polo desenho durnha política de traduçom de e para o galego