Prévia do material em texto
Modelo Relacional ou MR É a implementação que representa os dados num Banco de dados com uma coleção de relações e seus relacionamentos. Cada relação tem seu nome e seu conjunto de atributos. As relações do MR são chamadas de tabelas. Os atributos são todas as informações que estão dentro da tabela, esses atributos são aquelas informações do MER. Esses atributos precisam que seja definido o domínio, esse domínio são os valores/dados e formato que os atributos vão receber. Por exemplo, o formato do atributo Data de Nascimento é “dd/mm/ano”. O formato do atributo CEP é “nnnnn-nnn”. Domínio: Varchar: utilizado para indicar que o atributo pode receber letras, números e caracteres, sendo colocando qual será o valor que será incluído. char: utilizado para colocar a mesma coisa do varchar, porém o char é apenas de no máximo 2 caracteres datetime: utilizado para incluir data e horário daquele atributo date: utilizado para colocar apenas a data. decimal: utilizado para colocar valores relacionados a dinheiro, sendo necessário colocar a quantidade, exemplo: 5,2 ou 6,2. entre outros. As tuplas representam os valores de uma tabela e as Colunas representam os atributos, enquanto as linhas representam as tuplas, ou seja o espaço dentro da tabela o qual será recebido os dados são as tuplas e as colunas são os atributos os quais informam quais são os dados que serão recebidos. Depois de fazer todo o mapeamento no modelo ER, o primeiro passo após passar as informações para o MR é relacionar as tabelas,sendo o relacionamento e cardinalidade. Relacionamento um:um ou 1:1 Um relacionamento o qual duas entidades A e B, o qual os dados da entidade A se relaciona apenas uma vez com os dados da entidade B. Ex: O empregado tem apenas um único departamento, e o departamento tem apenas aquele empregado. Relacionamento um: muitos ou 1:N Um relacionamento o qual os dados da tabela A podem se relacionar mais de uma vez com os dados da tabela B. Ex: Um empregado pode ter mais de um dependente e o dependente por ter apenas um único empregado associado. Relacionamento muitos para muitos ou N:N Um relacionamento o qual os dados da tabela A pode ter vários relacionamento com a tabela B e vice-versa. Ex: um empregado pode trabalhar em muitos projetos e vice-versa. Normalização Utilizada para verificar as estruturas produzidas através do diagrama ER sendo um processo que permite simplificar as estruturas para que não apresente erros, duplicidades de informações Vantagens: Reduz os dados e chaves estrangeiras; reduz informações repetidas; ajuda no desempenho e manutenção do banco de dados. OBS: Ao projetar um banco de dados deve-se evitar: ○ Existência de grupos repetitivos; ○ Existência de atributos multivalorados; ○ Redundância de dados; ○ Perda de Informações; ○ Falhas na sincronização de dados idênticos em tabelas diferentes; ○ Existência de atributos que dependem apenas de parte de uma chave primária; ○ Existência de dependências transitivas entre atributos; Dentro da Normalização existe as funcionalidades: Decompor : usado para diminuir tabelas com várias informações dentro, como exemplo: produto, cliente, endereço, vendedor entre outras informações. Nesse caso fazendo a decomposição, ou seja, distribuímos em tabelas menores essas informações. E para isso é necessário entender a Dependência dentro do banco de dados: Dependência Funcional Sendo uma restrição entre dois conjuntos, ou seja, dois atributos da mesma entidade/tabela, o qual o atributo Y (simples ou não chave) depende do atributo X, existido um valor no atributo X para cada valor no atributo Y. Quando não existe um atributo que não dependa da chave primária, é porque algo está errado. dependência funcional completa (ou total). Sendo dita quando dentro de uma tabela/entidade existe mais de uma chave primária ou atributo chave, sendo chamada de chave composta. chave composta: quando existe uma tabela que tem mais de uma chave primária. Ex: Na foto é possível verificar que na tabela existem três atributos chaves e o atributo Nota da prova é identificado corretamente quando é usado as três chaves. Dependência parcial: quando dentro de uma tabela/entidade o qual existe uma chave composta, um atributo simples/não chave depende apenas de uma parte da chave composta na tabela, ou seja, depende apenas de uma. Ex: Nesse caso o nome da disciplina apenas é identificado por atributo chave código da disciplina. Dependência transitiva: quando um atributo não chave depende de outro atributo não chave. Ex: Nesse caso o atributo gerente não depende do Número do vendedor, mas sim do número do departamento o qual não é o atributo chave dessa tabela. A normalização é um processo que faz análises para verificar o esquema de relações a situação da forma Normal do banco A Primeira Forma Normal (1FN ou FN1): É necessário não haver atributos multivalorados. Não é obrigatório, porém é importante ter chave primária para cada tabela. A Segunda Forma Normal (2FN ou FN2): Precisa estar na primeira forma normal e além disso cada coluna não chave/ atributo não primário/ não chave depende funcionalmente da chave primária completa, ou seja se em uma tabela existem duas chaves primárias o atributo precisar depender das duas chaves. porém pode acontecer dependências transitivas. A Terceira Forma Normal (3FN ou FN3): Precisa está na segunda forma normal, é necessário decompor ainda mais as tabelas e criando chaves estrangeiras para não possuir dependências transitiva, ou seja os dados/atributos precisam ser dependentes de uma chave primária. Linguagem SQL - 17/05/2023 Structured Query Language (SQL) - linguagem simples e fácil uso, sendo a linguagem principal. se usa também como linguagem de consulta de banco de dados relacional. * Todo Sistema Gerenciador de Banco de Dados (SGBD) deve oferecer aos seus usuários e administradores meios de criar definições de dados, bem como manipular esses dados armazenados em suas bases.* SQL pode ser classificado de acordo com sua função: DML – Linguagem de Manipulação de Dados, subconjunto da linguagem usado para inserir, atualizar e apagar dados. Ex.: INSERT, UPDATE, DELETE; DDL – Linguagem de Definição de Dados, permite ao utilizador definir tabelas novas e elementos associados. Ex.: CREATE, DROP; DCL – Linguagem de Controle de Dados, controla quem tem acesso para ver ou manipular dados dentro do banco de dados. Ex.: GRANT, REVOKE; DTL – Linguagem de Transação de Dados, usado para o controle de transações no banco de dados. Ex.: START TRANSACTION; DQL – Linguagem de Consulta de Dados, permite ao usuário especificar uma consulta (query) como uma descrição do resultado desejado. Ex.: SELECT Alguns comandos em DDL - create - Para criar tabelas; drop - Para destruir/excluir coluna ou tabela. alter - Para modificar/alterar uma tabela/coluna. truncate comment - Para colocar comentários dentro do banco. rename - Para modificar o nome da tableta. select - Para pesquisar uma tabela. SQL-DDL: Para criar um SQL do zero é só seguir os passos a seguir. show databases; CREATE DATABASE locadorafilmes; create schema farmacia_pobres; drop database farmacia_zezinho; drop schema farmacia_pobres; use farmacia_Kpop; create table ex. Cargo( dentro dos parênteses se faz a tableta) Schema - objeto relacional, é uma base de dados mais flexível, mas mutável. database - objeto relacional. drop database - o drop significa destruir, está associada a estruturas, o que significa que ele está associado a destruir estruturas. Ao fazer um drop database você apaga o esquema. Ao fazer o drop você não pode voltar, se destruir não volta. drop destrói a tabela inteira Linguagem SQL - 24/05/2023 Como modificar uma tabela em DDL : “Alter table” Para incluir: ex: alter table fornecedor add column (ou add apenas) valorFrete decimal(5,2) zerofill null; ex: alter table fornecedor add column obs varchar(150) null; obs: essa inclusão vai para última coluna Para incluir depois de outracoluna: ex: alter table fornecedor add column obs varchar(150) null after email ; Para incluir primeiro na coluna: ex: alter table fornecedor add column obs varchar(150) null int first ; Para destruir uma coluna: alter table fornecedor drop column obs; (destruir a coluna) Para modificar definições: alter table telefone modify column numero varchar(15) unique not null (change pode-se usar, porém muda as definições e o nome da coluna) DML - 07/06/2023 linguagem de manipulação de dados, usando para inserir,atualizar e apagar dados. Ex: INSERT, UPDATE, DELETE; Insert : (insert into) é usado em Dml para inserir dados em uma tabela. (select * from) é usado para verificar uma tableta e o que foi preenchido nela. (order by) ordenar por nome. Update: (from) sinaliza qual tabela será a pesquisar (where) : filtra os dados que serão atualizados. (set) - sinaliza qual tableta atualizar. (like): É utilizado quando é um varchar, sinalizando que deseja uma parte do nome. (SET SQL_SAFE_UPDATES = 0;): É usado para destravar a alteração, pois o slq só deixa alterar quando é chave primária, dessa maneira qualquer atributo pode ser alterado. EX: update funcionario set comissao = 100 where cpf: “000.000.000-00”; (esse caso está sendo alterado a comissão do funcionário com o cpf tal, nessa caso envolve a chave primária que é o cpf ) update funcionario set comissão = 1000 where comissão: 1200; (nesse caso não funciona, pois a comissão não é chave primária e é preciso ativar o SET SQL_SAFE_UPDATES = 0;). update funcionario set salario = salario * 1.20 where sexo = ‘F’ ; (nesse caso também precisa do SET SQL_SAFE_UPDATES = 0;) esse caso é uma alteração na tabela funcionario o qual todos funcionario com o sexo ‘F’ vai ganhar um aumento. update funcionario set salario = salario + 1.50 where nome like “ %Costa”; (nesse caso é quando queremos atualizar salário ou outra coisa relacionado aquele nome por isso se usa o like, ao fazer isso automaticamente todos que tiverem o nome costa será atualizado ) DELETE Usado para deletar coluna/linha do sql. (From): é sempre usado no delete. Ex: delete from funcionario where cpf like “123.456.789-02”; (ao fazer isso, o funcionário x é excluído da tabela e consequentemente tudo que tiver o cpf do funcionário ou vinculado ao mesmo também é excluído). SLQ - DQL - 14/06/2023 SELECT Para pesquisar é necessário usar o select, porem tem varias formas de usar. exemplo: quero pesquisar no slq na tabela funcionario alguns dados específicos, nesse caso fazendo assim: Select cpf,nome,email,salario,comissao,sexo from funcionario order by nome; order by (é a forma de ordenar sua pesquisa, caso você queira buscar nomes em ordem alfabética ou outras opções). Caso você queira ajustar a tabela é só colocar ao lado do nome cpf ‘CPF’, e assim quando você clicar o nome cpf parecer maiusculo. where é usado para buscar algum dado específico Select cpf,nome,email,salario,comissao,sexo from funcionario where salario >= 300 order by nome, salario; Caso você queira buscar dados de comparação, por exemplo, quero buscar salário que seja de três mil até quatro mil é usado o between. o between é entre. exemplo: Select cpf,nome,email,salario,comissao,sexo from funcionario where salario between 300 and 400 order by nome, salario; like funciona como um igual, usado quando o dado for um varchar. sempre que for varchar não pode usar = e sim like. % é usado para especificar o dado que deseja buscar, pode ser usado antes e depois do dado. Select cpf,nome,email,salario,comissao,sexo from funcionario where nome like “%Costa%” order by nome; (from) sinaliza qual tabela será a pesquisar (where) : filtra os dados que serão atualizados. (like): É utilizado quando é um varchar, sinalizando que deseja uma parte do nome. (“”) usado para apelidar a tabela na hora da pesquisa, não modifica a tabela, apenas deixa organizado. Ex Select cpf “CPF”. (as) usado entre o atributo que deseja pesquisar e o apelido, não é obrigatório ser usado. (order by) usado para ordenar pelo nome, atributo. * Para pesquisar mais de uma tabela, o ideal é antes de informar os atributos colocar algumas informações que complemente. EX: cli.cpf (tabela cliente). e quando for sinalizar as tabelas é necessário colocar esse complemento depois de indicar a tabela. EX: cliente cli, endereço en; e no final sempre é necessário colocar a ligação entre as tabelas. EX: cli.cpf=en.cliente_cpf; (liga a chave primária com a chave estrangeira) cross join - cruza todas as possibilidades do banco de dados, usado quando não se coloca a chave identificadora. BEGIN TRANSACTION e ROLLBACK, dá pra reverter os comandos image4.png image3.png image2.png image1.png