- ---@--- Conceitos O que é dado? O que é uma informação? O que é BD? O que é BD? O que é SGBD? O que é? O que é SGBD? Como se comunicar com o SGBD? 1
O que é? Onde Nasceu? Tipos de Bancos Relacionais Dúvidas? Principais Bancos Relacionais... 2
Todo banco de dados tem um nome Banco de dados tem tabela de dados Tabela de dados tem campos Os campos tem seus tipos Um Modelo de Dados é um conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados. (Elmasri e Navathe, 2009) Categorias (principais) de Modelos de Dados: Modelo de Entidade-Relacionamento (conceitual)*: utilizam conceitos como entidades (coisas ou objetos do mundo real), relacionamentos (associações entre entidades) e atributos (características de entidades ou relacionamentos). Modelo Relacional (lógico)*: utiliza tabelas para representar entidades e relacionamentos do mundo real. Modelo de Dados Baseado em Objetos: é uma extensão do modelo ER com noções de encapsulamento, métodos e identidade de objeto. MER O Modelo Entidade-Relacionamento (MER) tem por base a percepção de que o mundo real é formado por: entidades, relacionamentos e atributos. Este modelo foi criado em 1976 por Peter Chen e é considerado padrão para a modelagem conceitual. Modelo Entidade-Relacionamento Geralmente um modelo entidade-relacionamento é representado através de um Diagrama de Entidade-Relacionamento (DER). 3
MER - Entidade MER - Relacionamento Locadora de DVD Vai com Fé Entidade é um conjunto de objetos da realidade sobre os quais deseja-se manter informações no banco de dados. (Heuser, 2009) Exemplos de Entidades para locadora: Cliente, DVD, Funcionário, Dependentes Geralmente são usados substantivos para dar nomes as entidades. Representação da Entidade no DER Através de um retângulo que contém seu nome. Cliente DVD Funcionário Dependente Locadora de DVD Vai com Fé Relacionamento é um conjunto de associações entre ocorrências de entidades. (Heuser, 2009) Exemplo de relacionamento Cliente possui Dependente Cliente aluga DVD Geralmente utilizamos verbos como nome do relacionamento Representação de uma entidade no DER Um relacionamento é representado através de um losango que contém seu nome. Para ligar uma entidade (retângulo) a um relacionamento (losango), utiliza-se linhas. MER - Relacionamento É importante que as linhas não se cruzem no diagrama MER - Cardinalidade Indica a quantidade de representantes de uma entidade que podem participar do relacionamento Cardinalidade Mínima, Cardinalidade Máxima (m,n) Deve ser indicada nas linhas que unem as entidades aos relacionamentos. Possibilidades de Cardinalidade (0,1) Pode acontecer no Mínimo O e no Máximo 1 ocorrência (1,1) Pode acontecer no Mínimo 1 e no Máximo 1 ocorrência (0,n) Pode acontecer no Mínimo O e no Máximo várias ocorrências (1,n) Pode acontecer no Mínimo 1 e no Máximo várias ocorrências MER - Cardinalidade MER - Cardinalidade Cliente aluga DVD A cardinalidade mínima só pode ser 0 ou 1 A cardinalidade mínima 1 recebe o nome de associação obrigatória A cardinalidade mínima 0 recebe o nome de associação opcional Um cliente pode locar de 0 a vários DVDs de uma locadora: O cliente pode ser cadastrado sem que tenha que locar DVDs. Um DVD pode ser alugado por 0 a vários clientes: Um DVD pode ser cadastrado na base de dados sem a obrigatoriedade de ter alguém para locá-lo. A cardinalidade máxima só pode ser 1 ou muitos (n) 4
MER - Cardinalidade MER - Atributos Cliente possui Dependente Um cliente pode locar de 0 a vários dependentes O cliente pode ser cadastrado sem possuir dependentes. Um dependente pode estar associado a apenas um cliente Para um dependente ser cadastrado, o cliente deve previamente existir na base de dados. É uma característica de uma entidade ou relacionamento Tipos de Atributos Chave: seu valor identifica unicamente cada entidade. Exemplo: CPF, pois não existe dois clientes com o mesmo CPF Simples: um valor para cada entidade. Nome, Idade Composto: é constituído por vários atributos. Endereço: Rua, número, complemento, bairro, cidade, CEP Multivalorado: pode der mais de um valor para um membro da entidade. Telefone MER - Atributos É uma característica de uma entidade ou relacionamento Um atributo é representado através de um círculo. Círculo fechado: atributo(s) chave(s) Círculo aberto: outros atributos Um atributo chave (identificador único) pode ser composto. Atributos multivalorados devem conter a indicação da quantidade mínima e máxima. Representação no DER: Mão na massa Criar Banco create database farmacia-vai-na-fe; use farmacia-vai-na-fe; -- Excluir Banco --------------------------------------- -- drop database farmacia-vai-na-fe; Criar Tabela -- Excluir tabela ------------------------------------------------- -- drop table clientes; 5
Tipo de Dados Chave Primária Simples Composta Chave Estrangeira Default Not Null Unique auto_increment Int ou integer Long Float Double Bool Date Time Datetime Char Varchar Text Longtext Enum alter table insert into alter table clientes add sexo_cliente varchar(20) after cpf; alter table clientes change sexo_cliente sexo; alter table clientes drop sexo int; alter table clientes rename to pessoas; insert into clientes (`nome`, `cpf`) VALUES ( Xuxa, 11111 insert into clientes (nome, cpf) VALUES ( Eliana, 22222 ), ( Mara Maravilha, 33333 ), ( Ivone, 44444 ), ( Karla, 55555 - select select com where select * from clientes; select * from clientes where cpf=`11111`; select nome from clientes; select nome, cpf from clientes; select nome from clientes where cpf=`22222`; select nome, cpf from clientes where cpf=`22222`; 6
- update - delete update clientes set nome=`xuxa Meneguel` where nome=`xuxa`; cod int not null primary key; nome varchar(400 cpf varchar(20 delete from clientes where nome=`karla`; delete from clientes where nome=`ivone`; LIKE Max e Min select nome from clientes where nome like `Xu%`; SELECT max(valor_venda) FROM produtos; select nome from clientes where nome like `%a`; select nome from clientes where nome like `%a%`; SELECT min(valor_venda) FROM produtos; Count AVG SELECT count(motor) FROM veiculo where motor='1.0'; SELECT avg(valor_venda) FROM produtos; SELECT count(motor) FROM veiculo where motor='1.6'; SELECT avg(salario) FROM funcionarios; 7
SUM Distinct SELECT sum(valor_venda) FROM produtos; select distinct(marca_veiculo) from veiculo; SELECT sum(salario) FROM funcionarios; select distinct(cargo) from funcionarios; Concat / Alias Order by select concat(ano, /,modelo) from veiculos; Alias select concat(ano, /,modelo) as ano_modelo from veiculos; select ano, modelo from veiculo order by ano asc, modelo asc; Group by select count(ano_fabricacao) as Quantidade, ano_fabricacao, ano_modelo, combustivel from veiculo group by ano_fabricacao, combustivel order by ano_fabricacao asc; select count(ano_fabricacao) as Quantidade, ano_fabricacao, ano_modelo, combustivel from veiculo group by ano_fabricacao, combustivel order by ano_fabricacao asc; 8
Limit select ano_fabricacao, ano_modelo, combustivel from veiculo where ano_fabricacao=2016 limit 5; 9