Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados - I Conceito e Arquitetura - 1 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Conceito e Arquitetura - 1 “Armazenar dados devidamente organizados, permitindo a sua recuperação de modo rápido e confiável somente por usuários devidamente autorizados.” Objetivo de um Banco de Dados O que é um Banco de Dados? Para que eu preciso de um Banco de Dados? Como definir, projetar e construir um Banco de Dados? Como vou usar um Banco de Dados? Qual a segurança que um Banco de Dados me oferece? Introdução Fundamentos; Sistema de Banco de Dados; SGBD – Sistema Gerenciador de Banco de Dados; Papel Humano no sistema; Nível de abstração de dados; Modelos de banco de dados; Introdução Redundância e Inconsistência de dados Mesmo dado em locais diferentes Dificuldade no acesso aos dados Ordenação diferente do desejado Isolamento de dados Um dado não está relacionado com outro dado Problemas de segurança Acesso por pessoas indevidas Problemas de integridade Informações não conferem Principais Diferenças entre BD e arquivos O que é um Dado? É uma representação de um fato, um acontecimento; É elementar e imprescindível; É indivisível (não existe meio dado); Registra uma informação; Exemplos: 23/01/1967 7 Londrina O Dado O que é uma informação? É um dado com significado mais amplo; Dá significado aos dados a ser analisado, o qual pode ser (ou não) modelado; Conjunto de dados inter-relacionados; Exemplo: 23/01/1967 : data de nascimento Londrina : cidade do estado do Paraná; A Informação Relacione a segunda coluna de acordo com a primeira coluna. Atividade 1 ) altura do pé-direito da sala ( ) Maracanã 2 ) data marcada para a prova ( ) 20 3 ) apelido do maior estádio do Rio de Janeiro ( ) 2,40 m 4 ) horário de termino do trabalho ( ) 19/10/2017 5 ) quantidade de times na série A do campeonato brasileiro de futebol ( ) 17:30h Banco de Dados - I Conceito e Arquitetura - 2 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Conceito e Arquitetura - 2 O que é um Banco de Dados? É uma coleção de dados persistentes, usados pelos sistemas nas empresas; É uma coleção de dados inter-relacionados, representando informações de um domínio específico; “É o produto final (análise + projeto + modelagem) resultando num repositório”. Banco de Dados (BD) São os componentes responsáveis pela definição e manutenção de Banco de Dados; Hardware (computadores); Software (programas de computador); Peopleware (pessoas); Dados (são as informações); Sistema de Banco de Dados Sistema de Banco de Dados Dados Nome: Endereço: Software Hardware Usuário Alguns objetivos: Isolar os usuários dos detalhes mais internos; Prover independência de dados às aplicações; Prover um repositório de dados; Sistema de Banco de Dados Quais as vantagens: Rapidez na manipulação e no acesso à informação; Redução do esforço humano; Disponibilização da informação no tempo necessário; Compartilhamento de dados; Sistema de Banco de Dados Quais as vantagens: Controle integrado de informações distribuídas fisicamente; Redução de redundâncias e de inconsistência de informações; Aplicação automática de restrições de segurança e integridade (regras de negócio no banco de dados); Sistema de Banco de Dados Características: Conhecido como SGBD ou DBMS (Data Base Management System); Composto por módulos de programas; Fornece a interface entre os dados de baixo nível e os programas aplicativos; Manipula todos os acessos a todos os objetos do banco de dados; Sistema Gerenciador de Banco de Dados Características: É um conjunto de programas (ferramentas) utilizados para a construção, manutenção, administração e gerenciamento de um Banco de Dados; Defini o armazenamento e organização, provê sua segurança, faz o controle da concorrência da sua utilização; Provê os mecanismos de proteção e recuperação dos dados em casos de perda do Banco de Dados; Sistema Gerenciador de Banco de Dados Sistema Gerenciador de Banco de Dados Tarefas: Interação com o sistema de arquivos do sistema operacional; Cumprimento da integridade; Cumprimento da segurança; Cópias de segurança “backup” e recuperação; Controle de concorrência de acesso aos dados; Gerenciador de tarefas; Sistema Gerenciador de Banco de Dados Banco de Dados - I Papel do Humano no Sistema - 3 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Papel do Humano no Sistema - 3 Em linhas gerais, temos a interação humana no sistema através dos papéis: DBA – Data Base Administrator ou Administrador de Banco de Dados; Desenvolvedor; Usuário final; Papel do Humano no Sistema Administrador de Banco de Dados (DBA): Pessoa (ou grupo) responsável pelo controle total do Sistema de Banco de Dados; Tarefas: • Define as estratégias de instalação e configuração do Banco de Dados; • Define as estratégias para cópia de segurança e recuperação; • Define o modelo e o projeto do Banco de Dados; Papel do Humano no Sistema Administrador de Banco de Dados (DBA); Tarefas: • Modifica a organização física; • Concede autorização para acesso aos dados; • Define o Dicionário de Dados (pode ser feito por um Administrador de Dados); • Dimensiona as necessidades de hardware e software para o SGBD; Papel do Humano no Sistema Desenvolvedor: Pessoa (ou grupo) responsável pelo desenvolvimento dos sistemas que acessarão o Banco de Dados; Tarefas: • Definição e manipulação de objetos para manter os dados; • Definição e manipulação de objetos para execução de rotinas; Papel do Humano no Sistema Usuários: Podemos classificar em 2 tipos de usuários: • Usuário leigo - São pessoas que não necessitam de conhecimento técnico. Apenas irão utilizar os dados/informações extraídos do Banco de Dados; • Poderão efetuar as consultas via software, ou uma ferramenta de interface com o Banco de Dados; Papel do Humano no Sistema Usuários: • Usuário especialista - São pessoas que possuem um conhecimento técnico específico e através de softwares específicos realizam acesso direto ao Banco de Dados, extraindo informações sob um contexto diferente dos sistemas. • Utilizam ferramentas específicas para acesso ao Banco de Dados de modo direto; Papel do Humano no Sistema Usuários: • Usuário especialista: • Trabalham com informações conhecidas como BI (Business Intelligence); • Tratam o Banco de Dados como um DataWareHouse (DWH) ou armazém de dados; • Utilizam técnicas de Data Mining (mineração de dados); Papel do Humano no Sistema Usuários: • Usuário especialista - São pessoas que possuem um conhecimento técnico específico e através de softwares específicos realizam acesso direto ao Banco de Dados, extraindo informações sob um contexto diferente dos sistemas. • Utilizam ferramentas conhecidas como BI (Business Intelligence), Data Mining (mineração de dados), DataWareHouse (armazém de dados); Papel do Humano no Sistema Banco de Dados - I Níveis de Abstração de Dados - 4 Análise e Desenvolvimento de SistemasProfessor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Níveis de Abstração de Dados - 4 O Sistema de Banco de Dados deve prover uma visão abstrata de dados para os usuários; Abstração de Dados dividida em 3 níveis; • Nível de visão do usuário; • Nível conceitual; • Nível físico; Níveis de Abstração de Dados Níveis de Abstração de Dados Nível Externo ou de Visão dos Usuários: Identificação do ambiente; Descreve partes do Banco de Dados, de acordo com as necessidades de cada usuário; Usuário associa a uma planilha eletrônica; Representa o mais alto nível de abstração; Níveis de Abstração de Dados Níveis de Abstração de Dados Nível Conceitual: O Banco de Dados é descrito através de entidades, atributos e relacionamentos; Representa o início da diagramação / modelagem de dados; Está ligado ao projeto conceitual e projeto lógico do Banco de Dados; É totalmente independente do SGBD; Nível Físico: O Banco de Dados é descrito por tabelas, campos e relacionamentos; Está ligado ao projeto físico do Banco de Dados; É totalmente dependente do SGBD; Engloba estruturas complexas de armazenamento de baixo nível; Níveis de Abstração de Dados Conceitos e Definições Instância Representa um momento instantâneo do Banco de Dados; Uma fotografia do Banco de Dados; Esquema Projeto Lógico + Projeto Físico; Independência Lógica: Capacidade de modificar a estrutura lógica do Banco de Dados sem a necessidade de recompilar todos os programas que acessam o BD. Ex. adicionar uma tabela no Banco de Dados; Independência Física: Capacidade de modificar a estrutura física do Banco de Dados sem a necessidade de recompilar todos os programas que acessam o BD. Ex. mudar tabela de local de armazenamento; Independência de Dados Gerenciador de Banco de Dados Interação com o gerenciador de arquivos; Cumprimento de integridade; Cumprimento de segurança; Gerenciar de backup e recuperação; Controle de Concorrência; A Satisfação de um usuário é medida pelo desempenho do Banco de Dados (tempo de resposta); O SGBD é um programa que provê a interface entre os programas aplicativos e os dados de baixo nível armazenados no Banco de Dados; Gerenciador de Banco de Dados Banco de Dados - I Linguagem de Acesso aos Dados - 5 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Linguagem de Acesso aos Dados - 5 SQL – Structure Query Language, ou Linguagem de Consulta Estruturada; Padrão ANSI (American National Standards Institute); Revisões em 86, 92, 99 e 2003(XML); Extensões proprietárias dos fabricantes de SGBD; Linguagem de Acesso aos Dados Linguagem de Acesso aos Dados Principais Definições de Interação com o SGBD; No início eram DML e DDL; Foi subdividido em DDL, DML, DQL, DCL e DTL; Data Definition Language (DDL). • Linguagem de Definição de Dados, utilizada para criar e manter as estruturas de armazenamento usadas no Banco de Dados; • Comandos Create, Alter e Drop; Linguagem de Acesso aos Dados Linguagem de Acesso aos Dados Data Manipulation Language (DML); • Linguagem de Manipulação de Dados, utilizada para interagir com os dados dentro das tabelas do Banco de Dados; • Comandos Insert, Update e Delete; Data Query Language (DQL); • Linguagem de Consulta de Dados, utilizada para acessar e consultar os dados dentro das tabelas do Banco de Dados; • Comando Select; Linguagem de Acesso aos Dados Linguagem de Acesso aos Dados Data Transaction Language (DTL). • Linguagem de Transação de Dados, utilizadas para controle das transações no Banco de Dados; • Comandos Begin Transaction, Commit, Rollback; Data Control Language (DCL); • Linguagem para Controle de Dados, utilizada para controle de segurança do Banco de Dados; • Comandos Grant, Revoke e Deny; Linguagem de Acesso aos Dados Linguagem de Acesso aos Dados A DML tradicional engloba o comando Select; DML Procedural • O usuário deve especificar qual dado é requisitado e como chegar até ele; DML não Procedural • O usuário deve especificar qual dado é requisitado sem a necessidade de especificar como chegar até ele; Banco de Dados - I Estrutura Geral do Sistema - 6 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Padrão SQL ANSI - 6 Nasceu na década de 70 dentro dos laboratórios da IBM; Padronizado pelo American National Standards Institute – ANSI; Cada fabricante de SGBD implementa modificações proprietárias (ex. “;” e “go”); Padrão SQL ANSI Padrão SQL ANSI Fator de sucesso : Linguagem Semântica; Escreve do jeito que se “fala”; Adotado por diversos fabricantes de SGBD, assim o conhecimento técnico é preservado; Características particulares de cada SGBD impedem uma migração 100% dos scripts prontos; Para criar uma tabela nova dentro do Banco de Dados; Create table aluno (id_aluno number(3), nm_aluno varchar2(30)); Crie a tabela aluno com os campos id_aluno numérico de 3 posições e nm_aluno caracter de tamanho variável com 30 posições no máximo; Padrão SQL ANSI Padrão SQL ANSI Para criar um usuário novo no Banco de Dados; Create user Roberto identified by ryn123; Cria um usuário novo chamado Roberto e com uma senha ryn123; Para verificar o conteúdo de uma tabela dentro do Banco de Dados; Select id_aluno, nm_aluno from aluno; Select < o que quer ver> from <de qual tabela> Selecione id_aluno, nm_aluno da tabela aluno; Select * from aluno; Padrão SQL ANSI Padrão SQL ANSI Para verificar o conteúdo de uma tabela com critérios de busca dentro do Banco de Dados; Select id_aluno from aluno where id_aluno < 10; Selecione id_aluno da tabela aluno onde id_aluno seja menor que 10; Para verificar o conteúdo de uma tabela dentro do Banco de Dados; Select id_aluno from aluno where id_aluno > 5 and id_aluno < 30; Selecione id_aluno da tabela aluno onde id_aluno seja maior que 5 E id_aluno seja menor que 30; Padrão SQL ANSI Padrão SQL ANSI Para gravar / inserir um conteúdo novo dentro de uma tabela no Banco de Dados; Insert into aluno values (10 , “ROBERTO”); Ou Insert into aluno (id_aluno, nm_aluno) values (10, “ROBERTO”); Inseri dentro da tabela aluno os valores 10 e ROBERTO respectivamente; Para atualizar os dados de uma tabela dentro do Banco de Dados; Update aluno set (nm_aluno = ‘RENATO’); Atualiza todos os registros da tabela aluno atribuindo um novo valor para o campo nm_aluno igual a RENATO para todos os registros da tabela aluno; Select * from aluno; Padrão SQL ANSI Padrão SQL ANSI Para atualizar os dados de uma tabela dentro do Banco de Dados; Update aluno set (nm_aluno = ‘RENATO’) where id_aluno < 10; Atualiza todos os registros da tabela aluno atribuindo um novo valor para o campo nm_aluno igual a RENATO desde que o atributo id_aluno seja menor que 10 (exclusive); Para deletar/remover os dados de uma tabela dentro do Banco de Dados; Delete from aluno; Deleta / remove todos os registros da tabela aluno sem questionar nada, este comando apaga todos os registros da tabela; Padrão SQL ANSI Padrão SQL ANSI Para deletar/remover os dados de uma tabela dentro do Banco de Dados; Delete from aluno where id_aluno < 10; Deleta / remove todos os registros da tabela aluno com a condição doid_aluno ser menor que 10; Perguntas Banco de Dados - I Modelo Entidade Relacionamento - 7 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Modelo Entidade Relacionamento - 7 “Estruturar e organizar os repositórios de armazenamento dos dados de modo a permitir um rápido acesso quando necessário, obedecendo a regras de negócio estabelecidas.” Objetivo de um Modelagem de Banco de Dados Nível conceitual; Elementos do mundo real; Através de Entidades e Relacionamentos Definido por Peter Chen em 1976; O que fazer; Símbolos fazem um diagrama; DER – Diagrama Entidade Relacionamento; Modelo Entidade Relacionamento Elementos de Negócio de um Mundo Real Objetos, coisas, algo relevante; Concreto ou Abstrato Características ou propriedades em comum agrupadas; Entidade Somente o que se precisa modelar Relevância Concretos: Palpáveis, Sólidos; Camisas, carros, pessoas, animais; Abstratos: Representam ideias, Conceitos; Nota Fiscal, pedidos, conta corrente; Existência Simbologia Conjunto de Ocorrências Descrição Textual Narrativa “ O nosso cliente entra aqui na loja e escolhe o filme que deseja ver, os filmes estão separados nas prateleiras pelo gênero ao qual“ . Atividade Identifique as entidades na descrição textual narrativa abaixo Resolução Cliente Filme Gênero Banco de Dados - I Modelo Entidade Relacionamento – Relacionamento - 8 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Modelo Entidade Relacionamento – Relacionamento - 8 Associação entre entidades detectadas; Entre duas entidades (binário); Entre várias entidades (ternário, n-ário); Expressa “REGRAS DE NEGÓCIO”; A maioria dos SGBD de mercado não implementam relacionamentos ternários; Relacionamentos Losango; Nome vai dentro do símbolo; Pode precisar de verbo auxiliar (faz, possui, ser, ter); Ausência de verbo pode ser interpretada como ‘se relaciona com’; Combinação de nomes A x B (A para B ou B por A); Simbologia Exemplos Conjunto de Ocorrências Conjunto de ocorrências do relacionamento entre as entidades envolvidas. Descrição Textual Narrativa Numa descrição textual, verbos podem denotar relacionamentos, assim: "...sendo que a bibliotecária empresta o livro...", “ O atendente solicita os dados pessoais do cliente no momento do seu cadastro, aproveita inclusive para perguntar quais são os gêneros de sua preferência ”. Atividade Identifique as entidades e os relacionamentos na descrição textual narrativa abaixo Resolução Funcionário Cliente Gênero cadastra prefere “ ... um cliente pode escolher vários filmes e locar aqueles que estiverem disponíveis no momento... ”. Atividade Identifique as entidades e os relacionamentos na descrição textual narrativa abaixo Resolução Filme Cliente Faz Locação Banco de Dados - I Cardinalidade - 9 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Cardinalidade - 9 Quantidade de ocorrências de entidades de A que podem estar associadas a uma ocorrência de entidade de B que se quer analisar; É uma “Regra de Negócio – RN” entre as entidades envolvidas no relacionamento; Cardinalidade Máximo de ocorrências de uma entidade em relação à outra; => Um para um ( 1 : 1 ); => Um para muitos ( 1 : n ); => Muitos para muitos ( n : n ) ou ( n : m ); Cardinalidade Máxima Acontece quando a ocorrência de uma entidade se relaciona com (no máximo) uma ocorrência de outra entidade e vice-versa; Leitura direta; O cliente (a) compra (b), no máximo 1 (c) produto (d); Cardinalidade Máxima 1 : 1 O produto (a) é comprado por (b), no máximo 1 © cliente (d); Um produto é comprado por, no máximo 1 cliente; Leitura Inversa A ocorrência de uma entidade se relaciona com (no máximo) muitas ocorrências de outra, porém a ocorrência de outra entidade se relaciona com (no máximo) uma ocorrência da primeira; Leitura direta; O cliente (a) compra (b), no máximo muitos (c) produtos (d); Cardinalidade Máxima 1:n O produto (a) é comprado por (b), no máximo 1 (c) cliente (d); Um produto é comprado por, no máximo 1 cliente; Leitura Inversa Banco de Dados - I Cardinalidade - 10 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Cardinalidade - 10 Acontece quando a ocorrência de uma entidade se relaciona com (no máximo) muitas ocorrências de outra entidade e vice-versa; Leitura direta; O cliente (a) compra (b), no máximo muitos © produtos (d); Cardinalidade Máxima n:n Leitura Inversa Produto (a) é comprado por (b), no máximo muitos (c) clientes (d); Um produto é comprado por, no máximo muitos clientes; Mínimo de ocorrências de uma entidade em relação à outra; Cardinalidade Mínima Opcional (0): uma ocorrência se relaciona com (no mínimo) nenhuma de outra entidade. Obrigatória (1): uma ocorrência se relaciona com (no mínimo) uma de outra entidade. Cardinalidade Mínima separados por vírgula e envolvido por parênteses não se pode informar somente a cardinalidade mínima Definição de Cardinalidade: Ter em mente o cenário a ser modelado; Detectar nos verbos as quantidades de entidades presentes no relacionamento através da descrição textual narrativa; Nomear apropriadamente as cardinalidades; Check List Exemplos Faça a leitura destas cardinalidades; Funcionário Cliente Gênero cadastra prefere (0,1) (0,n) (0,1) (0,n) Faça a leitura destas cardinalidades; Exemplos Filme Cliente Faz Locação (0,1) (0,n) Banco de Dados - I Atributos - 11 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Atributos - 11 Dado relevante, característica ou propriedade de uma entidade ou de um relacionamento. Linguagem de Acesso aos Dados Descrição Textual Narrativa Adjetivos indicam os atributos; “... cada empregado é numerado (tem um número de matrícula), é nomeado (possui um nome), tem uma data de contratação, tem um tempo de serviço e pode ter dois telefones de contato ...”; Número de matrícula, nome, data de contratação, tempo de serviço, telefone de contato; Representados graficamente por elipses, internamente ligados às entidades ou relacionamentos; Simbologia Data de contratação nome Número de matrícula empregado Tempo de serviço Telefone De contato Atividade De acordo com a descrição textual narrativa, identifique os atributos das entidades envolvidas; “...durante o processo de cadastramento do nosso novo cliente, o atendente pergunta os dados pessoais dele como o seu nome, rg, cpf, data de nascimento, idade, endereço, telefone residencial, telefone móvel, e-mail, os gêneros de sua preferência a atribui um código numérico de acordo com a ficha cadastral...”; Resolução Tipos de Atributos Determinante; Composto; Derivado; Multivalorado; Determinante – destaca, diferencia, individualiza uma ocorrência da entidade (sublinhado); Tipos de Atributosnúmero de matrícula empregado Banco de Dados - I Tipos de Atributos - 12 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Tipos de Atributos - 12 Composto – pode ser dividido em partes para representar adequadamente o todo; Tipos de Atributos pre-nome nome do meio sobrenome nome empregado Tipos de Atributos Derivado – obtido através do valor de outros atributos (elipse tracejada); Tempo de serviço = data atual – data de contratação; data de contratação tempo de serviço empregado Multivalorado – conjunto de valores para uma única ocorrência da entidade (elipse com linha dupla); Tipos de Atributos numero de matrícula nome empregado telefone de contato Atividade Baseado na atividade anterior, quais seriam os prováveis atributos determinante, composto, derivado e multivalorado; endereco idade generos codigo Banco de Dados - I Chaves - 13 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Chaves - 13 Primary Key - PK; Atributo ou conjunto de atributos que permite(m) a identificação individual de cada ocorrência na entidade; Não pode conter valor nulo; Chave Primária aluno matricul a nom e rg Não pode sofrer atualização de valor; Precisa ser deletado e re-criado; Gera um índice automático; É o caminho mais rápido para se chegar em um registro de uma tabela do Banco de Dados; Chave Primária aluno matricul a nom e rg Chave Estrangeira Foreign Key – FK; Atributo ou conjunto de atributos que vem herdado de um relacionamento com uma entidade forte; turma tem aluno id_turma id_turma (1,1) (0,N) Pode sofrer atualização de valor mas com condições; Não pode ser órfão de pai; Pode ter vários irmãos; Chave Estrangeira turma tem aluno id_turma (1,1) (0,N) id_turma Chave Estrangeira Uma entidade pode ter várias chaves estrangeiras, vindo de vários relacionamentos; Uma chave estrangeira pode ou não fazer parte da chave primária de sua própria entidade; turma tem aluno id_turma id_turma (1,1) (0,N) matricul a Banco de Dados - I Força da Entidade - 14 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Força da Entidade - 14 Entidade Forte – possui atributos suficientes para determinar a sua individualidade perante as ocorrências da entidade; Força da Entidade nome pessoa fisica t_movel cpf Força da Entidade Entidade Fraca – não possui atributos suficientes para permitir a sua identificação individualizada; Recebe a chave primária da entidade forte como uma chave estrangeira; cnpj fabricante possui contato sexo nome usual cnpj Força da Entidade Sempre que tem uma entidade fraca no relacionamento. O relacionamento é representado por um losango com linha dupla; cnpj fabricante possui contato sexo nome usual Só existe a partir do relacionamento; Salário em empregado – do empregado, não importa o departamento que ele esteja alocado; Salário em departamento – do departamento, independentemente do funcionário alocado; Salário do relacionamento – ao funcionário quando alocado em um departamento; Atributos no Relacionamento salário salário salário empregado alocado departamento Banco de Dados - I Grau de Relacionamento - 15 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Grau de Relacionamento - 15 Binário – entre duas entidades; N-ário (ternário, quaternário, etc) – entre mais de duas entidades; Grau de Relacionamento aluno pertence turma Relacionamento Binário aluno pertence turma Relacionamento N-ário aluno pertence turma curso Relacionamento Binário depósito fornece construtora material n n vende usa n n n n Relacionamento N-ário depósito fornecimento construtora material n n n quantidade Relacionamento N-ário depósito fornecimento construtora material n n n quantidade Auto Relacionamento peça composição n Peça menor n Peça maior funcionário supervisiona n subordinado 1 supervisor Banco de Dados - I Modelagem de Dados - 16 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Modelagem de Dados - 16 Para a parte prática vamos criar o modelo conceitual, lógico e físico utilizando a ferramenta BrModelo; BrModelo é free (gratuito) e executável (não precisa instalar nada); Modelagem de Dados Três entidades: Cliente, Carro e Modelo; Regras de Negócio; Um cliente pode reservar vários carros e um carro pode ser reservado por vários clientes (não ao mesmo tempo); Uma reserva obrigatoriamente tem que ter um cliente e um carro no mínimo; Modelagem de Dados Regras de Negócio; Um modelo pode ter vários carros e um carro só pode ser de um único modelo; Um modelo pode não ter carros ainda, mas o carro obrigatoriamente tem que ter um modelo; Modelagem de Dados Modelagem de Dados Cliente: nome – caractere (30); cpf – caractere (11); (zero a esquerda) Carro: placa – caractere (7); marca – caractere (15); modelo – caractere (15); cor – caractere (15); ano – número (2); Modelo: id_modelo – numero (4); nome – caractere (15); ar_cond – caractere (1); dir_hid – caractere (1); passageiro – numero (2); porta – numero (1); cambio – caractere (1); mala – numero(1); Modelagem de Dados Modelagem de Dados Entidades são Retângulo; Relacionamentos são Losango; Atributos são Circulo (preenchido = determinante, vazio = normal); Ligação do “objetos” são Linhas; Modelagem de Dados Modelagem de Dados Banco de Dados - I Modelagem de Dados - 17 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Modelagem de Dados - 17 Para a parte prática vamos criar o modelo lógico utilizando a ferramenta BrModelo; BrModelo é free (gratuito) e executável (não precisa instalar nada); Modelagem de Dados Modelagem de Dados O modelo lógico de dados é independente de SGBD porém já apresenta as características físicas dos atributos; Modelagem de Dados Modelagem de Dados Tabelas são Retângulo; Relacionamentos são Linhas; Campos simples são retângulo simples; Campo chave primária é retângulo com ponta preenchida; Campo chave estrangeira é retângulo com ponta meio preenchida; Modelagem de Dados Banco de Dados - I Modelagem de Dados - 18 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Modelagem de Dados - 18 Engenharia de Software – processo de transformação automática do Esquema Conceitual para o Esquema Lógico utilizando a ferramenta BrModelo; Relacionamento N-N já é criada a Tabela Associativa com a chave primária das duas entidades participantes no relacionamento; Modelagem de Dados Modelagem de Dados EsquemaConceitual -> Gerar Esquema Lógico; Modelagem de Dados Modelagem de Dados Banco de Dados - I Modelagem de Dados - 19 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Modelagem de Dados - 19 Engenharia de Software – processo de transformação automática do Esquema Lógico para o Esquema Físico utilizando a ferramenta BrModelo; Script gerado no padrão SQL ANSI; Sintaxe dos atributos padrão ORACLE; Modelagem de Dados Modelagem de Dados Editar template de conversão Modelagem de Dados Gerar esquema físico Conversão Converter Modelagem de Dados Modelagem de Dados Modelagem de Dados Banco de Dados - I Prática SQL (Oracle) - 20 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Prática SQL (Oracle) - 20 Criando um usuário para o acesso ao Banco de Dados; Utilizando o administrador do Banco de Dados – usuário SYSTEM com a senha MANAGER; Acessando o Banco de Dados Vamos à prática Conectando-se ao Banco de Dados com o administrador; SQL> connect system; SQL> manager (senha padrão) SQL> create user aluno identified by aluno; SQL> grant connect to aluno; SQL> grant resource to aluno; Vamos à prática Conectando-se com o usuário aluno; SQL> connect aluno; SQL> pwd: aluno SQL> show user; Aplicar o script da aula anterior; Copiar e colar o script ou SQL> create table ... Vamos à prática Banco de Dados - I Prática SQL (Oracle) Inserção de Dados - 21 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Prática SQL (Oracle) Inserção de Dados - 21 Para gravar novos dados dentro de uma tabela, utilizamos o comando INSERT; O comando INSERT grava 1 registro em 1 tabela de cada vez; Insert into <tabela> values (x, y, x); Inserção de Dados Inserção de Dados Vamos gravar 5 clientes novos; Id_cpf_cliente, nm_cliente; 11111111111, roberto; 22222222222, anderson; 33333333333, leonardo; 44444444444, polyanna; 55555555555, adriane; Vamos gravar 5 modelos novos; Id_modelo, tp_cambio_modelo, nm_modelo, qt_mala_modelo, ar_cond_modelo, nr_porta_modelo, nr_passageiro_modelo, dir_hid_modelo; 1, m, crossfox, 3, s, 4, 5, s; 2, a, new civic, 6, s, 4, 5, s; 3, a, fusion, 7, s, 4, 5, s; 4, m, uno, 2, n, 2, 4, n; 5, m, kwid, 2, n, 2, 4, n; Inserção de Dados Inserção de Dados Vamos gravar 5 carros novos; Id_placa_carro, nm_marca_carro,dt_ano_carro, nm_cor_carro, id_modelo; HND0123, honda, 15, preto, 2; FRD5153, ford, 16, prata, 3; VWB7125, volkswagem, 17, vermelho, 1; FIA0398, fiat, 15, prata, 4; RNT3765, renault, 17, branco, 5; Vamos gravar 10 reservas novas; Id_placa_carro, id_cpf_cliente; HND0123, 11111111111; VWB7125, 11111111111; FRD5153, 22222222222; FIA0398, 22222222222; VWB7125, 33333333333; RNT3765, 33333333333; Inserção de Dados Inserção de Dados Vamos gravar 10 reservas novas; Id_placa_carro, id_cpf_cliente; HND0123, 44444444444; RNT3765, 44444444444; FRD5153, 55555555555; FIA0398, 55555555555; Toda transação só terá validade definitiva se for confirmada; COMMIT; Caso deseje rejeitar a transação corrente; ROLLBACK; Controle de Transação de Dados Banco de Dados - I Prática SQL (Oracle) Seleção de Dados - 22 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Prática SQL (Oracle) Seleção de Dados - 22 Para pesquisar dentro das tabelas do Banco de Dados utilizamos o comando SELECT; O comando SELECT pode apresentar uma resposta com as seguintes possibilidades: Deu erro de sintaxe; Não encontrou o que desejava; Trouxe apenas 1 registro como resposta; Trouxe vários registros como resposta; Seleção de Dados Estrutura do comando: SELECT <o que quer ver> FROM <de qual tabela> WHERE <com qual condição>; * representa todos os campos da tabela; Pode-se acrescentar mais de uma tabela no mesmo comando SELECT, se não fizer a referencia cruzada, o resultado será a multiplicação entre as quantidades de todas as tabelas envolvidas no comando executado; Seleção de Dados Para ver a estrutura de uma tabela Oracle; DESCRIBE <nome da tabela>; Ou DESC <nome da tabela>; Pode ser utilizada a visão do dicionário de dados user_tables; Seleção de Dados Seleção de Dados SELECT * FROM CLIENTE; SELECT ID_CPF_CLIENTE, NM_CLIENTE FROM CLIENTE; SELECT ID_MODELO, NM_MODELO FROM MODELO; SELECT ID_PLACA_CARRO, NM_MARCA_CARRO, ID_MODELO FROM CARRO; Seleção com critérios de filtragem; WHERE <condição de seleção>; SELECT * FROM CLIENTE WHERE id_cpf_cliente > “33333333333” ; Seleção de Dados Seleção de Dados Com duas ou mais tabelas; SELECT <o que quer ver das duas tabela> FROM <nome das tabelas envolvidas>; Combinação entre todos os registros das tabelas envolvidas; WHERE <chave primária tabela 1> = <chave estrangeira tabela 2>; SELECT nm_modelo, tp_cambio_modelo, id_placa_carro, nm_cor_carro from MODELO, CARRO WHERE MODELO.id_modelo = CARRO.id_modelo; Seleção de Dados Seleção de Dados SELECT nm_modelo, tp_cambio_modelo, id_placa_carro, nm_cor_carro from MODELO, CARRO WHERE MODELO.id_modelo = CARRO.id_modelo AND tp_cambio_modelo = ‘a’; SELECT nm_modelo, tp_cambio_modelo, id_placa_carro, nm_cor_carro from MODELO, CARRO WHERE MODELO.id_modelo = CARRO.id_modelo AND nm_cor_carro = ‘prata’; Banco de Dados - I Prática SQL (Oracle) Atualização de Dados - 23 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Prática SQL (Oracle) Atualização de Dados - 23 Para a atualizar um dado existente por um conteúdo novo dentro de uma tabela do Banco de Dados; UPDATE <nome da tabela> SET <nome do campo> = ‘valor novo’; Atualiza todos os registros da tabela; Atualização de Dados Atualização de Dados UPDATE CLIENTE SET nm_cliente = ‘merris’; Select * from cliente; UPDATE CLIENTE SET id_cpf_cliente = ‘123’; Select * from cliente; Não pode mudar o valor da chave primária Atualização de Dados Com condição de seleção; UPDATE <nome da tabela> SET <nome do campo> = ‘novo conteúdo’ WHERE <condição de seleção>; UPDATE CLIENTE SET nm_cliente = ‘merris’ WHERE nm_cliente = ‘adriane’; UPDATE CLIENTE SET nm_cliente = ‘merris’ WHERE id_cpf_cliente = ‘55555555555’; Atualização de Dados Atualização de campo chave primária; UPDATE CLIENTE SET id_cpf_cliente = ‘123’ WHERE id_cpf_cliente = ‘11111111111’; Não pode mudar o valor da chave primária UPDATE CLIENTE SET id_cpf_cliente = ‘123’ WHERE nm_cliente = ‘roberto’; Tem registros filhos Atualização de Dados Atualização de campo chave estrangeira; UPDATE CARRO SET id_modelo = 6 WHERE id_placa_carro = ‘HND0123’; O modelo 6 não existe Atualização de Dados Atualização de campo chave estrangeira; Troca de pai de um registro filho; UPDATE CARRO SET id_modelo = 1 WHERE id_placa_carro = ‘HND0123’; Modelo 1 é o crossfox (placa de um honda) UPDATE CARRO SET id_modelo = 6 WHERE id_placa_carro = ‘HND0123’; Modelo 6 não existe(não existe o pai) Banco de Dados - I Prática SQL (Oracle) Remoção de Dados - 24 Análise e Desenvolvimento de Sistemas Professor : ROBERTO YUKIO NISHIMURA ESPECIALISTA EM ADMINISTRAÇÃO DA ENGENHARIA DE SOFTWARE BANCO DE DADOS - I Prática SQL (Oracle) Remoção de Dados - 24 Deleção de registros de uma tabela válida; DELETE FROM <nome da tabela>; Apaga todos os registros da tabela; Remoção de Dados - Deleção Remoção de Dados DELETE FROM RESERVA; Remove todos os registros da tabela RESERVA; DELETE FROM CLIENTE; Remove todos os registros da tabela CLIENTE; Remoção de Dados Deleção de registros selecionados; DELETE FROM <nome da tabela> WHERE <condição de seleção>; DELETE FROM RESERVA WHERE id_cpf_cliente = 111111111111’; Remoção de Dados Deleção de registro “pai” e todos os registros “filho” ao mesmo tempo; Deleção em CASCATA ou Infanticídio; Na criação da tabela tem que ter a indicação; Remoção de Dados create table pai (a number (1) primary key); create table filho (b number (1) primary key, c number (1) , foreign key (c) references pai (a) on delete );
Compartilhar