Você está na página 1de 9

Banco de Dados

1

Cardinalidade

1 Cardinalidade de relacionamentos

Na matemática, a cardinalidade de um conjunto é uma medida do "número de elementos do conjunto". Por exemplo, o conjunto A={2,4,6} contém 3 elementos e por isso possui cardinalidade 3.

2 Cardinalidade de relacionamentos

Propriedade importante de um relacionamento. Significa quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência de outra entidade, através do relacionamento.

D E D E D E Departamento Empregado
D
E
D
E
D
E
Departamento
Empregado

3 Relacionamento binário

É aquele que envolve duas entidades.

Relacionamentos binários

0

n (nenhum-para-muitos) Exemplo: gerente e empregado

0.

1

(nenhum-para-um) Exemplo: mesa e funcionário

1.

1

(um-para-um) Exemplo: marido e mulher

1.

n

(um-para-muitos) Exemplo: departamento e funcionário

n

n

(muitos-para-muitos)

Exemplo: fornecedor e produto

Prof. Uanderson Celestino

uanderson.com.br

Banco de Dados

2

4 Cardinalidade mínima

o

Número mínimo de ocorrências de entre entidades.

o

Para fins de projeto de BD, consideram-se apenas duas cardinalidade mínimas:

cardinalidade mínima 0 cardinalidade mínima 1

5 Cardinalidade máxima

o

Número máximo de ocorrências entre entidades.

o

Para projeto de BD relacional não é necessário distinguir entre diferentes, cardinalidade máximas > 1

o

Valores de cardinalidade máximas usados:

cardinalidade máxima 1 cardinalidade máxima “muitos”, referida pela letra n

6 Representação do Modelo Conceitual

Vamos começar entendendo a cardinalidade 1-n na sequência veremos as particularidades das demais.

1-n na sequência veremos as particularidades das demais. Vamos fazer a leitura desta cardinalidade da seguinte

Vamos fazer a leitura desta cardinalidade da seguinte forma:

O EMPREGADO pode trabalhar somente em

1 Departamento

Isto quer dizer que o funcionário pertence somente a um departamento.

No Departamento possui

n EMPREGADO

Isto quer dizer que o departamento possui vários funcionários ou no mínimo um.

As informações das entidades serão armazenadas em tabelas contendo os registros de cada elemento.

Prof. Uanderson Celestino

uanderson.com.br

Banco de Dados

3

7 Representação do Modelo Lógico

Banco de Dados 3 7 Representação do Modelo Lógico No modelo lógico observamos alguns pontos: 

No modelo lógico observamos alguns pontos:

O relacionamento desaparece.

Neste modelo precisamos definir o tipo de dado para cada atributo.

O atributo identificador aparece representado por uma “chave dourada”, no modelo lógico este atributo é chamado de chave primária.

Surge uma “chave prateada, a qual se denomina chave estrangeira.

A regra para a chave estrangeira é simples: a entidade com maior cardinalidade, no caso EMPREGADO recebe o atributo identificador da entidade DEPARTAMENTO.

8 Representação do Físico

No modelo físico temos o código SQL que cria as tabelas e define o tipo de dado de cada atributo.

Obs.: A sequência para criação das tabelas é muito importante.

CREATE TABLE Departamento ( CodDep int PRIMARY KEY, nomeDep varchar(45), Endereco varchar(50)

)

CREATE TABLE Empregado ( CodEmp int PRIMARY KEY, nomeEmp varchar(45), Endereco varchar(50),

CodDep int FOREIGN KEY REFERENCES Departamento (CodDep)

)

Na criação da tabela EMPREGADO observamos a palavra reservada REFERENCES, que informa que o campo CodDep da tabela EMPREGADO referencia o campo CodDep da tabela DEPARTAMENTO.

Prof. Uanderson Celestino

uanderson.com.br

Banco de Dados

4

9

Linguagem de Banco de Dados

Para podermos inserir, apagar, atualizar dados em uma base de dados, precisamos de uma linguagem de banco de dados. A linguagem que veremos aqui será a de Consulta Estruturada (Structured Query Language) mais conhecida como SQL.

Constituem subconjunto da linguagem, a Linguagem de Definicao de Dados (Data Definition Language - DDL) e a Linguagem de Manipulacao de Dados (Data Manipulation Language - DML).

SQL: Structured Query Language que nao e mais do que uma linguagem padrao decomunicacao com base de dados. Falamos, portanto, de uma linguagem normalizada que nos permite trabalhar com qualquer tipo de linguagem (ASP ou PHP) em combinacao com qualquer tipo de base de dados (MS Access, Oracle, MySQL etc).

DDL: e o conjunto de comandos SQL responsáveis pela definicão dos dados, ou seja, pela criação de bancos, esquemas, tabelas, campos, tipos de dados, restrições etc. E utilizada pelo DBA e projetistas de banco de dados para definir seus esquemas.

9.1

Criar Banco de Dados

Sintaxe:

CREATE DATABASE <nome_do_banco_de_dados>;

Exemplo:

CREATE DATABASE Empresa;

9.2

Utilizar o Banco de Dados

Sintaxe:

USE <nome_do_banco_de_dados>;

Exemplo:

USE Empresa;

Prof. Uanderson Celestino

uanderson.com.br

Banco de Dados

5

9.3 Excluir o Banco de dados e as Tabelas

Sintaxe:

DROP DATABASE <nome_do_banco_de_dados>;

Exemplo:

DROP DATABASE Empresa;

Sintaxe:

DROP TABLE <nome_Da_tabela>;

Exemplo:

DROP TABLE Empregado;

Obs. Para excluir uma base de dados, eu preciso estar fora dela.

9.4 Criar Tabelas

Sintaxe 1:

CREATE TABLE <nome_da_tabela> ( <coluna> <tipo> [PRIMARY KEY], <coluna> <tipo> [not null] [null], <coluna> <tipo> [not null] [null]

)

Exemplo:

Item 8

Obs.ficar atento a abertura e fechamento dos parenteses e com relação a vírgula que separa as colunas da tabela.

Sintaxe 2:

CREATE TABLE <nome_da_tabela> (

<coluna> <tipo> [PRIMARY KEY], <coluna> <tipo> [not null] [null], <coluna> <tipo> [not null] [null]

<coluna> <tipo>

[FOREIGN KEY] [REFERENCES] [nome_da_tabela]( <coluna>)

)

Exemplo:

Item 8

Prof. Uanderson Celestino

uanderson.com.br

Banco de Dados

6

9.4.1 Tipos de dados

TINYINT:

Valores numéricos inteiros variando de 0 até 256

SMALLINT:

Valores numéricos inteiros variando de 32.768 até 32.767

INT:

Valores numéricos inteiros variando de -2.147.483.648 até 2.147.483.647

BIGINT:

Valores numéricos inteiros variando de 92.23.372.036.854.775.808 até

9.223.372.036.854.775.807

BIT:

Somente pode assumir os valores 0 ou 1. Utilizado para armazenar valores lógicos.

DECIMAL(I,D) e NUMERIC(I,D):

Armazenam valores numéricos inteiros com casas decimais utilizando precisão. I deve ser

substituído pela quantidade de dígitos total do número e D deve ser substituído pela quantidade

de dígitos da parte decimal (após a vírgula). DECIMAL e NUMERIC possuem a mesma

funcionalidade, porém DECIMAL faz parte do padrão ANSI e NUMERIC é mantido por

compatibilidade. Por exemplo, DECIMAL(8,2) armazena valores numéricos decimais variando de

999999,99 até 999999,99

Obs. sempre que o SQL Server internamente armazena o separador decimal como ponto (.) e o

separador de milhar como vírgula (,). Essas configurações INDEPENDEM de como o Windows

está configurado no painel de controle e para DECIMAL E NUMERIC, somente o separador

decimal (.) é armazenado.

SMALLMONEY:

Valores numéricos decimais variando de -214.748,3648 até 214.748,3647

MONEY:

Valores numéricos decimais variando de -922.337.203.685.477,5808 até

922.337.203.685.477,5807

REAL:

Valores numéricos aproximados com precisão de ponto flutuante, indo de -3.40E + 38 lang=PT-

BR> até 3.40E + 38

Prof. Uanderson Celestino

uanderson.com.br

Banco de Dados

7

FLOAT:

Valores numéricos aproximados com precisão de ponto flutuante, indo de -1.79E + 308 lang=PT- BR> até 1.79E + 308 SMALLDATETIME:

Armazena hora e data variando de 1 de janeiro de 1900 até 6 de junho de 2079. A precisão de hora é armazenada até os segundos. DATETIME:

Armazena hora e data variando de 1 de janeiro de 1753 até 31 de Dezembro de 9999. A precisão de hora é armazenada até os centésimos de segundos. CHAR(N):

Armazena N caracteres fixos (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco. VARCHAR(N):

Armazena N caracteres (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido. TEXT:

Armazena caracteres (até 2.147.483.647) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que 2.147.483.647, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado. NCHAR(N):

Armazena N caracteres fixos (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco.

Prof. Uanderson Celestino

uanderson.com.br

Banco de Dados

8

NVARCHAR(N):

Armazena N caracteres (até 4.000) no formato Unicode. Se a quantidade de caracteres

armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não

é preenchido.

NTEXT:

Armazena caracteres (até 1.073.741.823) no formato Unicode. Se a quantidade de caracteres

armazenada no campo for menor que 1.073.741.823, o resto do campo não é preenchido.

Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para

trabalhar com este tipo de dado.

9.5 Inserção Dados na tabela

Sintaxe:

INSERT <tabela> VALUES(valor,valor,valor);

Exemplo:

INSERT Departamento VALUES(100,’Vendas’,’Av. Nove de Julho, 2000’); INSERT Departamento VALUES(101,’Marketing’,’Av. Nove de Julho, 2000’); INSERT Departamento VALUES(102,’Compras’,’Av. Nove de Julho, 2000’); INSERT Departamento VALUES(103,’Financeiro’,’Av. Nove de Julho, 2000’);

INSERT Empregado VALUES(200,’José Pedro da Silva’,’Av. Nova, 200’,100); INSERT Empregado VALUES(201,’Ricardo Antônio’,’Av. das Laranjeira, 20’,100); INSERT Empregado VALUES(202,’Maria de Souza’,Rua Rio Novo, 421,103); INSERT Empregado VALUES(203,’Francisca Dias’,’Av. Nove de Julho, 35,102);

Prof. Uanderson Celestino

uanderson.com.br

Banco de Dados

9

10 Exercício

10.1 Criar o banco com as tabelas.

10.2 Exclua as tabelas criadas.

10.3 Altere a sequência de criação das tabelas, e informe se isto gerou algum tipo de erro. Justifique.

10.4 Faça a inserção dos registros.

10.5 Faça a inserção deste registro e relate o que ocorreu. Justifique caso, apresente algum erro.

INSERT Empregado VALUES(204,’Pedro da Silva’,’Av. Nova Cidade, 55’,105);

10.6 Faça a inserção deste registro e relate o que ocorreu. Justifique caso, apresente algum erro.

INSERT Empregado VALUES(200,joão Silva’,’Av. Nova Era, 2050’,105);

10.7 Para criação deste banco poderíamos pensar em uma solução na qual existiria somente uma tabela, nela estaria contida as informações dos empregados e departamentos.

Apresente as vantagens e desvantagens deste tipo de modelo.

Ficaria mais prático

Acompanhar o histórico dos empregados seria mais difícil.

Se eu alterasse o endereço ou o nome de um departamento, teria que mudar em varias linhas da minha tabela.

Controlar se o funcionário trabalha em um departamento que não existe seria difícil.

Prof. Uanderson Celestino

uanderson.com.br