CURSO GABARITO TECNOLOGIA DA INFORMAÇÃO CURSO GABARITO ISS/RJ INFORMÁTICA - FGV TECNOLOGIA DA INFORMAÇÃO ⇒ expressão que vem substituindo o termo “INFORMÁTICA”. ⇒ É o conjunto de meios tecnológicos e computacionais BANCO DE DADOS que permite a produção e utilização da informação. CONCEITOS BÁSICOS BANCO DE DADOS BANCO DE DADOS MOTIVAÇÃO BANCO DE DADOS ⇒ é um conjunto de informações Há uma grande necessidade em se realizar o armazenamento de informações que não se encontram isoladas umas das outras. relacionadas entre si, referentes a um mesmo assunto e organizadas de maneira útil, com o proposito de servir de base Além de uma forma adequada para definir o armazenamento destas informações, os usuários desejam realizar operações sobre esta coleção de dados, tais como: adicionar (inserir) novos dados, recuperar (consultar) um determinado subconjunto de dados, atualizar ou modificar a estrutura dos dados e eliminar (excluir) informações desnecessárias, etc. para que o usuário recupere as informações, tire conclusões e tome decisões. São de vital importância para empresas, e se tornaram a principal peça dos sistemas de informação. BANCO DE DADOS EXEMPLOS DE BANCO DE DADOS - TRADICIONAIS • • • • • • • • • • TIPOS DE BANCO DE DADOS ALUNOS DE UMA ESCOLA LISTA DE ASSINANTES DE UMA EMPRESA TELEFÔNICA FUNCIONÁRIOS DE UMA EMPRESA DECLARANTES DO IRPF (CADVAL) BASE DE DADOS CPF CLIENTES DE UM BANCO FGTS ELEITORES BRASILEIROS FORNECEDORES POETAS PORTUGUESES (Fernando Pessoa, Florbela Espanca...) ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 OPERACIONAIS (Transacionais-OLTP) ⇒ conjunto de dados para uso em aplicativos enquadrados em processos funcionais e administrativos da empresa. INFORMACIONAIS (Analíticos-OLAP) ⇒ conjunto de dados para uso em Sistemas de Apoio a Decisão (SAD) de uma empresa. Uma parte deste conjunto de dados é denominado DATA WAREHOUSE. 1 MANUEL CURSO GABARITO BANCO DE DADOS BANCO DE DADOS BANCO DE DADOS - CONCEITOS GERAIS C REGISTRO ⇒ conjunto de dados que devem ser tratados R E G I S T R O S como uma unidade de informação. Os registros são constituídos de campos e podem ser de tamanho fixo ou tamanho variável. CAMPO ⇒ componente em que é dividido um registro. ARQUIVO ⇒ conjunto de dados relativos a um mesmo tema, NOME A CPF M P O ENDEREÇO S D_NASC E_CIVIL 01/09/87 CASADA ANA 000..... RUA......... JOÃO 029..... AV........... 25/08/70 CASADO MARIA 039..... RUA......... 10/04/90 SOLTEIRA BETH 289..... RUA......... 23/07/78 DIVORC PEDRO 187..... AV........... 09/06/60 CASADO LÚCIA 004..... RUA......... 12/11/89 SOLTEIRA UM CONJUNTO DE REGISTROS FORMA UM ARQUIVO ! estruturado em registros. BANCO DE DADOS BANCO DE DADOS PERGUNTAS COMO ARMAZENAR OS DADOS? PERGUNTAS É POSSÍVEL GARANTIR INTEGRIDADE ? COMO TER ACESSO A ESSES DADOS ? COMO GARANTIR ACESSIBILIDADE ? QUE SOFTWARE DEVE SER UTILIZADO ? COMO GARANTIR DISPONIBILIDADE ? COMO GERENCIAR OS DADOS ARMAZENADOS ? COMO GARANTIR CONFIDENCIALIDADE ? É POSSÍVEL GARANTIR CONSISTÊNCIA ? É POSSÍVEL ELIMINAR REDUNDÂNCIAS ? É POSSÍVEL GARANTIR SEGURANÇA ? SISTEMA DE PROCESSAMENTO DE ARQUIVOS SISTEMA DE PROCESSAMENTO DE ARQUIVOS APLICAÇÕES - PROGRAMAS PROGRAMA-1 PROGRAMA-2 DESVANTAGENS REDUNDÂNCIA E INCONSISTÊNCIA DE DADOS PROGRAMA-3 DIFICULDADE NO ACESSO AOS DADOS ISOLAMENTO DE DADOS ARQUIVO1 ARQUIVO2 ARQUIVO3 ANOMALIAS DE ACESSO CONCORRENTE ARQUIVO4 PROBLEMAS DE SEGURANÇA VÁRIOS ARQUIVOS PROBLEMAS DE INTEGRIDADE PROBLEMAS DE ATOMICIDADE ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 2 MANUEL CURSO GABARITO BANCO DE DADOS SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD Estas e outras dificuldades provocaram o desenvolvimentos dos SISTEMAS GERENCIADORES DE BANCO DE DADOS SGBDs. Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, a manipulação e a organização dos dados. O SGBD disponibiliza uma INTERFACE para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. SGBD ⇒ é um conjunto de programas que permite ao usuário DEFINIR, CONSTRUIR e MANIPULAR Bancos de Dados (BD) para as mais diversas aplicações. SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD DEFINIR um BD ⇒ envolve a especificação e a descrição detalhada dos tipos de dados a serem armazenados. CONSTRUIR um BD ⇒ é o processo de armazenamento dos dados em si em um determinado meio físico que é controlado pelo SGBD. MANIPULAR um BD ⇒ inclui uma série de funções para se realizar operações de consulta, atualizações e inclusão e exclusão de dados no BD. SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD O BANCO DE DADOS (BD) E SEU SOFTWARE (SGBD) SÃO JUNTOS DENOMINADOS DE SISTEMA DE BANCOS DE DADOS (SBD). ⇐ SGBD ⇐ SBD ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 3 MANUEL CURSO GABARITO SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD CARACTERÍSTICAS PRINCIPAIS CARACTERÍSTICAS PRINCIPAIS São projetados para gerenciar grandes grupos de O SGBD disponibiliza uma interface para que clientes possam informações. incluir, alterar ou consultar dados previamente armazenados. O gerenciamento envolve a definição de estruturas de Faz uma gestão autónoma da informação, de acordo com um armazenamento e manipulação de dados. modelo preestabelecido e adaptado à empresa. Implementa mecanismos de segurança para as informações Gere toda a informação contida no Banco de Dados sendo a armazenadas. interface entre a INFORMAÇÃO e os USUÁRIOS (utilizadores), Retira da aplicação cliente a responsabilidade de gerenciar o quer sejam usuários finais quer sejam programadores. acesso, a manipulação e a organização dos dados. SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD BANCO DE DADOS VANTAGENS DA CENTRALIZAÇÃO SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD A redundância pode ser reduzida Num Sistema Gerenciador de Banco de Dados A inconsistência pode ser evitada (SGBD), a empresa consegue um CONTROLE Os dados podem ser compartilhados CENTRALIZADO dos seus dados operacionais. Podem ser aplicadas restrições de segurança Os padrões podem ser reforçados A integridade pode ser mantida (n_max horas, n_dep, etc) Necessidades conflitantes podem ser balanceadas BANCO DE DADOS PRINCIPAIS CARACTERÍSTICAS DA ABORDAGEM USANDO BANCO DE DADOS VERSUS A ABORDAGEM DE PROCESSAMENTO DE ARQUIVOS ARQUITETURA DE UM SGBD A proposta maior de um sistema de bancos de dados é prover Natureza auto descritiva do sistema de banco de dados. aos usuários uma visão abstrata dos dados, isto é, o sistema Isolamento entre os programas (aplicações) e os dados omite certos detalhes de como os dados são armazenados e Abstração dos dados mantidos internamente. Os programas (aplicações) e usuários Suporte para as múltiplas visões dos dados. não Compartilhamento de dados e processamento de transações de multiusuários. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 acessam diretamente as informações como num processamento de arquivos. Eles fazem requisições ao SGBD e este recupera as informações no disco. 4 MANUEL CURSO GABARITO ABSTRAÇÃO DE UM BANCO DE DADOS BANCO DE DADOS NÍVEIS DE ABSTRAÇÃO ABSTRAÇÃO DE UM BANCO DE DADOS NÍVEL FÍSICO (INTERNO) ⇒ o nível mais baixo de abstração descreve COMO os dados estão realmente armazenados. S APLICAÇÃO G B USUÁRIO BANCO DE DADOS D Descreve todos os detalhes de armazenamento de dados e caminhos de acesso à base de dados. Neste nível de abstração trabalham os DBAs (Data Base Administrators). DISCO BANCO DE DADOS BANCO DE DADOS NÍVEIS DE ABSTRAÇÃO NÍVEL EXTERNO (VISUAL) ⇒ é o mais alto nível de abstração NÍVEIS DE ABSTRAÇÃO NÍVEL CONCEITUAL (LÓGICO) ⇒ descreve QUAIS dados e descreve apenas parte do banco de dados. Muitos usuários estão armazenados no Banco de Dados e as relações que não estarão interessados em todas as informações do BD, mas existem entre eles (relacionamentos, restrições). O nível apenas em parte delas. Para isso, níveis de visão são definidos conceitual é normalmente usado pelos administradores que de modo que as interações sejam simplificadas. Uma visão precisam decidir quais as informações que devem estar no exibe apenas uma parte dos dados do BD. Neste nível de Banco de Dados. Neste nível de abstração trabalham os DBAs e abstração trabalham os DBAs, os Analistas de Aplicação e os os Analistas de Aplicação (programadores). usuários comuns. Exemplo: arquivo que contenha apenas os maiores declarantes do IRPF. NÍVEIS DE ABSTRAÇÃO BANCO DE DADOS INSTÂNCIA E ESQUEMA Um banco de dados muda ao longo do tempo por meio das informações que nele são inseridas ou excluídas. INSTÂNCIA ⇒ é o conjunto de informações contidas em determinado Banco de Dados em um dado momento. ESQUEMA ⇒ é o projeto geral de um Banco de Dados. Um esquema é então o modo como é concebida a organização da informação. O esquema de um Banco de Dados muda muito pouco ao longo do tempo. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 5 MANUEL CURSO GABARITO BANCO DE DADOS LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS EM UM BANCO DE DADOS SISTEMAS GERENCIADORES DE BANCO DE BANCO DE DADOS ORACLE Para criar um Banco de Dados precisamos: DEFINIR os dados que serão armazenados. MANIPULAR os dados armazenados. MY SQL Os SGBD’s disponibilizam para os usuários duas linguagens: SQL SERVER Uma para DEFINIR quais dados vão ser armazenados (DDL). ACCESS (OFFICE) BASE (BR-OFFICE/LIBRE-OFFICE) PostgreSQL Uma para MANIPULAR esses dados (DML). SyBase ADABAS DB2 LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS EM UM BANCO DE DADOS LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS EM UM BANCO DE DADOS DDL (Data Definition Language) DDL (Data Definition Language - Linguagem de Definição de • O resultado da compilação dos parâmetros DDLs é armazenado em um conjunto de tabelas que constituem um arquivo especial chamado Dicionário de Dados ou Diretório de Dados. • Um Dicionário de Dados é um arquivo de METADADOS, isto é, dados a respeito de dados. • A estrutura de memória e o método de acesso usados pelo BD são especificados por um conjunto de definições em um tipo especial de DDL chamado de linguagem de definição e armazenamento de dados (data storage and definition language - DSDL). Dados) ⇒ Permite ESPECIFICAR o ESQUEMA do Banco de Dados, através de um conjunto de definições de dados. A compilação dos comandos em DDL é armazenada no dicionário (ou diretório) de dados (METADADOS). DDL (Data Definition Language) DDL (Data Definition Language) DDL INCLUI BASICAMENTE QUATRO COMANDOS (SQL) • CREATE DATABASE / DROP DATABASE DEFINIÇÕES EM DDL • CREATE TABLE / DROP TABLE / ALTER TABLE • CREATE VIEW / DROP VIEW • CREATE INDEX / DROP INDEX COMANDOS DDL COMPILAÇÃO DICIONÁRIO DE DADOS METADADOS • CRIAR BANCO DE DADOS / EXCLUIR BANCO DE DADOS • CRIAR TABELA / EXCLUIR TABELA / ALTERAR TABELA (estrutura) • CRIAR VISÃO / EXCLUIR VISÃO • CRIAR ÍNDICE / EXCLUIR ÍNDICE ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 6 MANUEL CURSO GABARITO DML (Data Manipulation Language) LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS EM UM BANCO DE DADOS DML INCLUI BASICAMENTE QUATRO COMANDOS (SQL) DML (Data Manipulation Language - Linguagem de • SELECT ⇒ SELECIONAR • INSERT ⇒ INSERIR Manipulação de Dados) ⇒ é a linguagem que permite • UPDATE ⇒ ATUALIZAR aos usuários ACESSAR ou MANIPULAR dados • DELETE ⇒ EXCLUIR organizados pelo modelo de dados apropriado. SQL (Structured Query Language) LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS EM UM BANCO DE DADOS • Linguagem padrão de consulta a Banco de Dados Relacionais. • Unifica a DDL e a DML numa única linguagem. • Engloba ainda outros aspectos, como por exemplo, os relacionados com a administração da base de dados. • É uma linguagem NÃO-PROCEDIMENTAL (PROCEDIMENTAL = PROCEDURAL). • Funciona em modo interativo. • Existem várias extensões à linguagem SQL. • É uma norma ISO e ANSI. ISO (International Standards Organization) ANSI (American National Standards Institute) TIPOS DE DML DMLs um usuário para especificar qual dado é necessário e COMO obtê-lo. DMLs NÃO-PROCEDURAIS ⇒ requerem um usuário para especificar qual dado é necessário SEM ESPECIFICAR como obtê-lo. FUNÇÕES DE UM DBA BANCO DE DADOS ADMINISTRADOR DE BANCO DE DADOS DEFINIÇÃO DO ESQUEMA ⇒ define a ESTRUTURA original do BD (armazenada em um DD-Dicionário de Dados). DBA (DataBase Administrator) ⇒ Uma das principais razões DEFINIÇÃO DA ESTRUTURA DE DADOS E MÉTODO DE para se usar SGBD é ter um controle central dos dados e dos ACESSO ⇒ define a estrutura de ARMAZENAMENTO e programas de acesso a eles. A pessoa que tem esse controle é MÉTODOS de ACESSO. MODIFICAÇÕES NA ORGANIZAÇÃO FÍSICA ⇒ promove o ADMINISTRADOR DE BANCO DE DADOS (DBA). ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 PROCEDURAIS ⇒ requerem alterações na organização física dos dados. 7 MANUEL CURSO GABARITO FUNÇÕES DE UM DBA BANCO DE DADOS CONCESSÃO DE AUTORIZAÇÃO PARA ACESSO AOS MODELAGEM DE DADOS DADOS ⇒ concede autorização para acesso ao Banco de ALGUNS CONCEITOS PRELIMINARES Dados. O fornecimento de diferentes tipos de autorização no ABSTRAÇÃO ⇒ processo mental através do qual selecionamos acesso aos dados permite que o administrador regule o determinadas propriedades ou características dos objetos e acesso dos diversos usuários às diferentes partes do sistema. excluímos outras. ESPECIFICAÇÃO DE RESTRIÇÃO DE INTEGRIDADE ⇒ é o DBA quem define as restrições de integridade. O sistema faz MODELO ⇒ é uma abstração, uma representação simplificada, uma consulta as restrições de integridade quando precisa de uma parcela do mundo real, composta por objetos reais. realizar uma atualização. BANCO DE DADOS ETAPAS DE DESENVOLVIMENTO DE UM BANCO DE DADOS MODELAGEM DE DADOS ALGUNS CONCEITOS PRELIMINARES CICLO DE VIDA E PROJETO DE BANCO DE DADOS MODELO DE DADOS ⇒ um modelo de dados é uma descrição 1- LEVANTAMENTO DE REQUISITOS das informações que devem ser armazenadas em um banco de 2- PROJETO CONCEITUAL dados, ou seja, é a descrição formal da estrutura do BD 3- PROJETO LÓGICO (descrição dos dados, dos relacionamentos entre os dados, da 4- PROJETO FÍSICO semântica e das restrições impostas aos dados). MODELAGEM ⇒ atividade através da qual se cria um modelo. BANCO DE DADOS REQUISITO DE DADOS REQUISITOS PROJETO CONCEITUAL ESQUEMA CONCEITUAL ESQUEMA LÓGICO ESQUEMA FÍSICO PROJETO LÓGICO Necessidades dos usuários significado dos dados. e o MODELO DE DADOS ⇒ é uma coleção de ferramentas conceituais para descrição de dados, relacionamentos entre Descreve o CONTEÚDO das informação do BD esses dados, semântica de dados e restrições de consistência. ao invés das estruturas de armazenamento que serão necessárias para gerenciar essa informação. PRINCIPAIS MODELOS Descreve a ESTRUTURA do BD que pode ser processada por um Sistema Gerenciador de Banco de Dados (SGBD). NÃO DEPENDE de um SGBD específico, mas depende do MODELO de dados. MODELO BASEADO EM OBJETOS (MER) MODELO BASEADO EM REGISTROS (RELACIONAL) PROJETO FÍSICO Descreve a ESTRUTURA FÍSICA do BD que pode ser processada por um SGBD. DEPENDE de um SGBD específico. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 MODELO DE DADOS FÍSICO 8 MANUEL CURSO GABARITO MODELOS BASEADOS EM OBJETOS MODELO ENTIDADE-RELACIONAMENTO (MER) MODELO ENTIDADE-RELACIONAMENTO (MER) Introduzido por Peter Chen em 1976. O projetista de banco de dados primeiro IDENTIFICA as É um modelo CONCEITUAL ENTIDADES e RELACIONAMENTOS que são de INTERESSE É baseado na percepção do mundo real, e consiste em um para a empresa usando a TÉCNICA DIAGRAMÁTICA chamada conjunto de OBJETOS básicos chamados ENTIDADES e DER-DIAGRAMA-ENTIDADE-RELACIONAMENTO). nos RELACIONAMENTOS entre esses objetos. Neste estágio, o projetista deve examinar os dados do PONTO Foi desenvolvido para facilitar o projeto de banco de dados, DE VISTA DA EMPRESA como um todo (não a visão de um permitindo a especificação de um esquema de empresa (que programador de aplicação específico). representa a lógica geral de um Banco de Dados). MODELO ENTIDADE-RELACIONAMENTO (MER) MODELO ENTIDADE-RELACIONAMENTO (MER) CARACTERÍSTICAS GRÁFICO DIAGRAMA ENTIDADE-RELACIONAMENTO (DER) FÁCIL INTERPRETAÇÃO ⇒ POUCO FORMAL OU MATEMÁTICO Usado para expressar GRAFICAMENTE a ESTRUTURA LÓGICA GERAL de um Banco de NÍVEL CONCEITUAL DE BANCO DE DADOS Dados. MODELO ENTIDADE-RELACIONAMENTO (MER) DIAGRAMA ENTIDADE-RELACIONAMENTO (DER) COMPONENTES DIAGRAMA E-R (DER) ATRIBUTOS 1.RETÂNGULOS ⇒ representam conjuntos-ENTIDADE. ATRIBUTOS NOME TIPO 2.ELIPSES ⇒ representam ATRIBUTOS. ENDEREÇO 3.LOSANGOS ⇒ representam RELACIONAMENTOS entre Nº CONTA Nº CONTA SALDO conjuntos-entidade. 4.LINHAS ⇒ LIGAM atributos a conjuntos-entidade, e CLIENTE conjunto-entidade a relacionamentos. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 ENTIDADE 9 CLIENTE CONTA RELACIONAMENTO CONTA ENTIDADE MANUEL CURSO GABARITO BANCO DE DADOS MODELO ENTIDADE-RELACIONAMENTO (MER) MODELO ENTIDADE-RELACIONAMENTO (MER) TIPOS DE OBJETOS - DIAGRAMA E-R TIPOS DE OBJETOS - DIAGRAMA E-R ENTIDADE ⇒ Elemento de existência própria. Representa um objeto real, pessoa, lugar ou coisa. Uma ENTIDADE é CHAVE ⇒ é um conjunto de um ou mais atributos que representada por um conjunto de ATRIBUTOS. tomados coletivamente permite identificar uma entidade no ATRIBUTO ⇒ Propriedades que identificam as entidades. DOMÍNIO⇒ conjunto-entidade e estabelecer relações entre entidades. Conjunto onde estão definidos os valores de RELACIONAMENTO ⇒ é uma associação entre entidades. atributos. ENTIDADE FUNCIONÁRIO (CLASSE) MODELO ENTIDADE-RELACIONAMENTO (MER) NOME TIPOS DE OBJETOS - DIAGRAMA E-R ZÉ DAS COUVES ENTIDADE ⇒ Elemento de existência própria. IRACEMA DA EMA SAPUCAÍ Representa um objeto real, pessoa, lugar ou coisa. SIMPLÍCIO SIMPLÓRIO DA SIMPLICIDADE SIMPLES Uma entidade é representada por um conjunto de FARROKH BULSARA atributos. YUSUF ISLAM ROBERT ALLEN ZIMMERMAN JOHNNY ALLEN HENDRIX ARLETTE PINHEIRO ESTEVES TORRES D_NASC 01/01/1960 02/01/1970 01/01/1900 05/09/1946 21/06/1948 24/04/1941 27/11/1942 16/10/1929 CADA LINHA (REGISTRO) É UMA INSTÂNCIA - OCORRÊNCIA ! TIPOS DE ENTIDADES - CLASSIFICAÇÃO PRINCIPAIS TIPOS DE ENTIDADES ENTIDADE FORTE ⇒ é aquela que possui alto grau de independência com relação a existência e identificação. Pode ocorrer independente da presença de outras entidades. Para existir NÃO depende da existência de outras Entidades. Representa um conceito independente em um modelo de dados. É o principal componente do modelo E-R, sem o qual nenhum dos outros (atributo, relacionamento) pode existir. Exemplo: em um sistema acadêmico as entidades ALUNO e CURSO são entidades fortes, pois a entidade ALUNO, se não existisse a entidade CURSO, poderia existir da mesma forma. FORTE FRACA (DEPENDENTE) ASSOCIATIVA AGREGADA (GENERALIZAÇÃO) SUBORDINADA (ESPECIALIZAÇÃO) ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 10 MANUEL CURSO GABARITO TIPOS DE ENTIDADES - CLASSIFICAÇÃO ENTIDADE FRACA ENTIDADE FRACA ⇒ é a entidade cuja existência depende da existência de outra entidade (dita FORTE). EXEMPLOS • a entidade AGENCIA (fraca) não pode existir sem a entidade BANCO (forte). • a entidade DEPENDENTE (fraca) não pode existir sem a entidade FUNCIONÁRIO (forte). • a entidade BAIRRO (fraca) não pode existir sem a entidade CIDADE (forte). • a entidade ANDAR (fraca) não pode existir sem a entidade PRÉDIO (forte). SERÁ QUE EXISTE ALGUMA COISA QUE PARA EXISTIR DEPENDE DA EXISTÊNCIA DE UMA ENTIDADE ? ENTIDADE FRACA ENTIDADE FRACA ENTIDADE FORTE ENTIDADE FRACA = ENTIDADE DEPENDENTE ! ENTIDADE FORTE/FRACA ENTIDADE FRACA ENTIDADE FRACA ENTIDADE FORTE PRÉDIO ENTIDADE FORTE POSSUI ENTIDADE FRACA ANDAR POSSUI ENTIDADE FRACA LINHA DUPLA CADA ANDAR POSSUI DIVERSAS SALAS SALA ENTIDADE FRACA RELACIONAMENTO COM ENTIDADE FRACA LINHA DUPLA CADA PRÉDIO POSSUI DIVERSOS ANDARES POSSUI CORREDOR CADA ANDAR POSSUI DIVERSOS CORREDORES ENTIDADE FRACA ENTIDADE ASSOCIATIVA - AGREGAÇÃO ENTIDADE ASSOCIATIVA ⇒ o uso desta abstração é necessário QUANDO um RELACIONAMENTO deve ser representado como uma ENTIDADE no modelo conceitual. Isto ocorre quando é necessário estabelecer um relacionamento entre uma ENTIDADE e um RELACIONAMENTO. Uma entidade é dita associativa quando não existe por si só e sua existência está condicionada à existência de duas ou mais entidades. Seu identificador é formado pela concatenação dos identificadores das entidades que se associam para lhe dar origem. Deve-se procurar sempre dar a mesma um nome adequado, pois irá aumentar a clareza do modelo de dados. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 UMA UNIVERSIDADE POSSUI VÁRIOS PRÉDIOS EXEMPLO ⇒ A entidade MÉDICO tem um relacionamento com a entidade PACIENTE. Se for necessário adicionar a informação que, a cada CONSULTA um ou mais Medicamentos podem ser prescritos ao paciente, será necessário criar uma nova entidade (MEDICAMENTO). Esta entidade deve se relacionar com as consultas, mas CONSULTA é um relacionamento. Nesse caso deve ser criada então uma ENTIDADE ASSOCIATIVA. 11 MANUEL CURSO GABARITO ENTIDADE ASSOCIATIVA - EXEMPLO ENTIDADE ASSOCIATIVA - EXEMPLO A entidade MÉDICO tem um relacionamento (CONSULTA) com a entidade PACIENTE. MÉDICO MÉDICO CONSULTA NOVO RELACIONAMENTO PRESCRIÇÃO PRESCRIÇÃO PACIENTE ENTIDADE ASSOCIATIVA MEDICO + PACIENTE MÉDICO_PACIENTE PACIENTE CONSULTA Se for necessário adicionar a informação que, a cada consulta um ou mais medicamentos podem ser prescritos ao paciente, será necessário criar uma nova entidade (MEDICAMENTO) MEDICAMENTO A cada CONSULTA um ou mais medicamentos podem ser prescritos ao paciente ⇐ NOVA ENTIDADE - MEDICAMENTO MÉDICO_PACIENTE ⇒ ENTIDADE ASSOCIATIVA SE RELACIONA COM A ENTIDADE MEDICAMENTO. GENERALIZAÇÃO/ESPECIALIZAÇÃO ENTIDADE ASSOCIATIVA - OUTRA REPRESENTAÇÃO MÉDICO CONSULTA PACIENTE GENERALIZAÇÃO ENTIDADE ASSOCIATIVA MEDICO + PACIENTE MÉDICO_PACIENTE ⇒ é um processo de abstração em que vários tipos de entidade são AGRUPADOS em uma única ENTIDADE genérica, que mantém as propriedades comuns. Ou NOVO RELACIONAMENTO PRESCRIÇÃO PRESCRIÇÃO MEDICAMENTO seja, A cada CONSULTA um ou mais medicamentos podem ser prescritos ao paciente agrupa-se conjuntos de elementos com alguma SEMELHANÇA SEMÂNTICA em um conjunto maior. GENERALIZAÇÃO ⇒ GERA UMA ENTIDADE AGREGADA ! ⇐ NOVA ENTIDADE - MEDICAMENTO MÉDICO_PACIENTE ⇒ ENTIDADE ASSOCIATIVA SE RELACIONA COM A ENTIDADE MEDICAMENTO. GENERALIZAÇÃO/ESPECIALIZAÇÃO GENERALIZAÇÃO OBSERVE AS DUAS ENTIDADES ABAIXO ESPECIALIZAÇÃO ⇒ é o processo inverso, ou seja, novas entidades especializadas são CRIADAS, com atributos que acrescentam DETALHES à entidade genérica existente. Ou seja, ESPECIALIZAÇÃO é uma abstração que permite FIGURA 1- ENTIDADES INDEPENDENTES GERENTE E SECRETARIA SUBDIVIDIR um conjunto GRANDE de elementos em conjuntos FIGURA 2 - ENTIDADE FUNCIONÁRIO FUNCIONÁRIO É UMA ENTIDADE AGREGADA - contém atributos comuns as entidades Gerente e Secretária (matrícula, nome, salário, dpto). ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 MENORES de acordo com padrões estabelecidos pelas necessidades da aplicação. 12 MANUEL CURSO GABARITO ESPECIALIZAÇÃO GENERALIZAÇÃO/ESPECIALIZAÇÃO Usada quando é necessário caracterizar entidades com atributos próprios ou participação em relacionamentos específicos ESPECIALIZAÇÃO ⇒ PESSOA_FÍSICA E PESSOA_JURÍDICA SÃO ENTIDADES SUBORDINADAS ! GENERALIZAÇÃO/ESPECIALIZAÇÃO DIAGRAMA ENTIDADE-RELACIONAMENTO (DER) ATRIBUTOS ATRIBUTOS ATRIBUTOS NOME ESPECIALIZAÇÃO TIPO ESPECIALIZAÇÃO ENDEREÇO Nº CONTA Nº CONTA CLIENTE CONTA CLIENTE ENTIDADE TIPOS DE OBJETOS - DER - ATRIBUTO RELACIONAMENTO CONTA ENTIDADE TIPOS DE OBJETOS - DIAGRAMA E-R - ATRIBUTO ATRIBUTO TIPOS DE ATRIBUTO • PROPRIEDADES que IDENTIFICAM as ENTIDADES. SIMPLES - ATÔMICOS • É uma PROPRIEDADE que descreve alguma característica. • Os atributos não possuem existência própria ou independente - estão sempre associados a uma ENTIDADE ou RELACIONAMENTO. • ATRIBUTO é o valor para uma característica. Todo valor de um atributo é extraído de um DOMÍNIO. DOMÍNIO ⇒ Conjunto onde estão definidos os valores de atributos. Exemplo: N_DEP ⇒ Domínio = NATURAIS (0,1,2,..) ! N_DEP = número de dependentes. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 SALDO COMPOSTO MONOVALORADO MULTIVALORADO DERIVADO DETERMINANTE 13 MANUEL CURSO GABARITO TIPOS DE ATRIBUTO TIPOS DE ATRIBUTO SIMPLES (ATÔMICOS) ⇒ não são divisíveis (são atômicos). COMPOSTO ⇒ quando é formado por mais de um atributo. Um atributo COMPOSTO possui mais de um domínio simples. Quando um atributo não é composto e recebe um único valor Por exemplo, o atributo ENDEREÇO pode ser dividido em: como, por exemplo, NOME-CLIENTE, então ele será atributo logradouro, bairro, cidade, estado e cep que são atributos SIMPLES. Um atributo SIMPLES possui um domínio simples. simples com significados independentes e formados pelos Por exemplo, o atributo SEXO tem um domínio simples se for domínios simples, dos: Logradouros, Bairros, Cidades, Estados codificado pelo conjunto das letras F (feminino) e M (masculino). e CEP´s. Assim, atributos compostos podem ser divididos em EXEMPLOS ⇒ Idade, CPF, Peso, Altura, etc. partes menores, que representaram atributos básicos. Atributos deste tipo formam uma HIERARQUIA. TIPOS DE OBJETOS - DIAGRAMA E-R TIPOS DE ATRIBUTO TIPOS DE ATRIBUTO MONOVALORADO (UNIVALORADO) ⇒ é o atributo que possui apenas um valor para uma entidade em particular. Por exemplo, IDADE é um atributo monovalorado para a entidade FUNCIONÁRIO. Um funcionário só tem uma idade. MATRÍCULA é um atributo monovalorado para a entidade ALUNO. Um aluno só tem uma matrícula. DERIVADO ⇒ quando o seu conteúdo DEPENDE do conteúdos de outros atributos. Por exemplo, idade e data_nascimento de uma pessoa. Podemos determinar o valor atual da idade através do atributo data_nascimento. Então IDADE é chamado um atributo DERIVADO do atributo data_nascimento. MULTIVALORADO ⇒ é o atributo que pode possuir um ou mais valores. Exemplo: TELEFONE. Uma pessoa poderá ter mais de um número de telefone. É indicado colocando-se um asterisco precedendo o nome do atributo (*telefone). NÃO DERIVADO ⇒ quando ele não pode ser obtido a partir de outros atributos. Por exemplo, data_nascimento não pode ser obtida a partir da idade. TIPOS DE ATRIBUTO DETERMINANTE (Identificador) ⇒ identifica de FORMA ÚNICA uma instância em uma ENTIDADE, ou seja, não pode haver dados repetidos. É indicado sublinhando-se o nome do atributo. Exemplo: CNPJ, CPF, matrícula, título-eleitor, etc. Os atributos determinantes serão as CHAVES PRIMÁRIAS no BD e seu uso tem implicações na NORMALIZAÇÃO de dados. Atributos determinantes são de preenchimento OBRIGATÓRIO. NÃO DETERMINANTE ⇒ quando o identificador não identifica univocamente uma entidade dentro de um conjunto entidades. Por exemplo, o atributo NOME do aluno não identifica o aluno dentro da entidade ALUNO. Existem nomes repetidos ! ATRIBUTO DERIVADO ATRIBUTO DERIVADO ELIPSE PONTILHADA ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 14 MANUEL CURSO GABARITO DIAGRAMA ENTIDADE-RELACIONAMENTO (DER) TIPOS DE OBJETOS - DER - RELACIONAMENTO RELACIONAMENTO ATRIBUTOS NOME ENDEREÇO CONTEXTO ⇒ Nenhuma informação armazenada no Banco de ATRIBUTOS Dados existe isoladamente. Todos os elementos pertencentes TIPO ao mundo real (restrito) modelado de alguma forma estão Nº CONTA Nº CONTA ASSOCIADOS SALDO a outros elementos. Normalmente estas associações representam ações físicas ou alguma forma de CLIENTE ENTIDADE CLIENTE CONTA RELACIONAMENTO dependência entre os elementos envolvidos. CONTA RELACIONAMENTO ⇒ é uma ASSOCIAÇÃO entre ENTIDADES sobre a qual deseja-se manter informações no Banco de Dados. ENTIDADE TIPOS DE OBJETOS - DER - RELACIONAMENTO RELACIONAMENTO - EXEMPLO • Os relacionamentos representam fatos ou situações da realidade, onde as entidades interagem de alguma forma. • Um dado por si só não faz uma informação, pois não tem sentido próprio. É necessário que haja uma ASSOCIAÇÃO de dados para que a informação seja obtida. • Relacionamentos são representados por LOSANGOS ligados às entidades que participam do relacionamento • Relacionamentos têm ATRIBUTOS. • Normalmente SUBSTANTIVOS são as ENTIDADES e os VERBOS são os RELACIONAMENTOS. NOME NOME COD_FORN COD_PROD PEDIDO FORNECEDOR PRODUTO ENTIDADE COD_FORN ATRIBUTOS DO RELACIONAMENTO ENTIDADE COD_PROD PREÇO QUANTIDADE RELACIONAMENTO ATRIBUTOS DO RELACIONAMENTO UNÁRIAS ⇒ associam uma entidade com ela própria. TIPOS DE OBJETOS - DER - RELACIONAMENTO EXEMPLO-01 TIPOS DE ASSOCIAÇÃO ⇒ São as FORMAS como as ENTIDADES se relacionam num determinado modelo de informação. As associações se classificam em unárias, binárias e complexas. ENTIDADE EQUIPE EQUIPE UNÁRIAS ⇒ associam uma entidade com ela própria. AUTO RELACIONAMENTO ! JOGA A ENTIDADE EQUIPE É FORMADAS POR TIMES QUE JOGAM ENTRE SI ! AUTO RELACIONAMENTO EXEMPLO-02 BINÁRIAS ⇒ associam DUAS entidades diferentes. ENTIDADE ALUNO COMPLEXAS ⇒ associam MAIS DE DUAS entidades diferentes. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 ATRIBUTOS ATRIBUTOS ALUNO 15 GERIDO UM ALUNO É GERIDO POR ELE PRÓPRIO. AUTO RELACIONAMENTO MANUEL CURSO GABARITO UNÁRIAS ⇒ associam UMA entidade com ela própria. PESSOA BINÁRIAS ⇒ associam DUAS entidades. ENTIDADE PESSOA EXEMPLO-03 MARIDO CASA ENSINA PROFESSOR PESSOA CASA COM PESSOA ! ESPOSA ENTIDADE PROFESSOR DISCIPLINA ENTIDADE DISCIPLINA EXEMPLO-04 ENTIDADE MATÉRIA MATÉRIA PRÉ-REQUISITO CLIENTE CONTA CLIENTE MATÉRIA É PRÉ-REQUISITO DE MATÉRIA ! ENTIDADE CLIENTE CONTA ENTIDADE CONTA COMPLEXAS ⇒ associam MAIS DE DUAS entidades COMPLEXAS ou TERNÁRIAS ou N-ÁRIAS COMPLEXAS ⇒ associam MAIS DE DUAS entidades. EXEMPLO-1 EXEMPLO-2 ALUNO TEM COMPLEXAS ou TERNÁRIAS ou N-ÁRIAS DISPUTA ATLETA PROFESSOR DISCIPLINA PROVA MODALIDADE CARDINALIDADE CARDINALIDADE ⇒ a cardinalidade de uma ENTIDADE em um RELACIONAMENTO expressa o número de INSTÂNCIAS da entidade que podem ser ASSOCIADAS a uma determinada INSTÂNCIA da entidade relacionada. CARDINALIDADE ⇒ define o número MÁXIMO ou MÍNIMO de ocorrências em um relacionamento. POSSUI ALOCADO DEPARTAMENTO [1:N] CARDINALIDADE MÍNIMA DE UMA ENTIDADE ⇒ é o número mínimo de instâncias da entidade associada que devem se relacionar com uma instância da entidade em questão. EMPREGADO [1:1] Um DEPARTAMENTO ⇒ possui no MÍNIMO 1 e no MÁXIMO N empregados [1:N]. CARDINALIDADE MÁXIMA DE UMA ENTIDADE ⇒ é o número máximo de instâncias da entidade associada que devem se relacionar com uma instância da entidade em questão. Um EMPREGADO ⇒ está alocado a no MÍNIMO 1 e no MÁXIMO 1 departamento [1:1]. INSTÂNCIA = OCORRÊNCIA ! ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 16 MANUEL CURSO GABARITO CARDINALIDADE ⇒ define o número MÁXIMO ou MÍNIMO de ocorrências em um relacionamento. 1 ESTANTE N GUARDA TIPOS (GRAUS) DE RELACIONAMENTOS GRAU DE RELACIONAMENTO ⇒ é a participação MÁXIMA (limite superior) de cada uma das entidades nas associações a LIVRO que está ligada. O grau de relacionamento é independente do tipo de associação. (0,N) ESTANTE (1,1) GUARDA GRAU DOS RELACIONAMENTOS - CLASSIFICAÇÃO LIVRO UM PARA UM ( 0 , N ) MIN , MAX ( 1 , 1 ) UM PARA MUITOS MIN , MAX MUITOS PARA MUITOS TIPOS DE RELACIONAMENTOS TIPOS DE RELACIONAMENTOS UM-para-UM (1:1) ⇒ EXEMPLOS UM-para-UM ⇒ UMA ocorrência (instância) de A se relaciona a UMA ocorrência de B (1:1). PROFESSOR 1• •1 2• •2 3• •3 A DISCIPLINA 1 1 PERTENCE POSSUI 1 1 DEPARTAMENTO EMENTA B TIPOS DE RELACIONAMENTOS TIPOS DE RELACIONAMENTOS UM-para-MUITOS ⇒ UMA ocorrência de A pode se relacionar UM-para-MUITOS (1:N) ⇒ EXEMPLOS com N ocorrências de B (1:N). PROFESSOR •1 1• 2• 3• A ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 1 ENSINA N ALUNOS •2 •3 •4 FUNCIONÁRIO 1 ALOCADO N PROJETOS •5 •6 B 17 MANUEL CURSO GABARITO TIPOS DE RELACIONAMENTOS MUITOS-para-MUITOS ⇒ N ocorrências de A se relacionam a M ocorrências de B (N:M). TIPOS DE RELACIONAMENTOS MUITOS-para-MUITOS (N:M) ⇒ EXEMPLOS •1 N FORNECEDOR •2 1• M FORNECIMENTO PRODUTOS •3 2• •4 3• •5 4• •6 A B N ALUNO M CURSO DISCIPLINA O MODELO RELACIONAL BANCO DE DADOS MODELO DE DADOS ⇒ é uma coleção de ferramentas É possível reduzir diagramas entidade-relacionamento a uma coleção de TABELAS. Para cada ENTIDADE e para cada RELACIONAMENTO, existe uma ÚNICA TABELA que é designada com o mesmo nome da ENTIDADE ou do RELACIONAMENTO correspondente. conceituais para descrição de dados, relacionamentos entre esses dados, semântica de dados e restrições de consistência. PRINCIPAIS MODELOS MODELO DE DADOS FÍSICO A passagem do diagrama do MER para a representação do Modelo Relacional é denominado MAPEAMENTO do MER para o RELACIONAL e é uma das técnicas mais utilizadas por ser uma ligação entre os modelos de dados mais utilizados. O MODELO RELACIONAL MODELO ENTIDADE RELACIONAMENTO - MER MODELO BASEADO EM OBJETOS - MER MODELO BASEADO EM REGISTROS - RELACIONAL ATRIBUTOS Um BD relacional possui apenas um tipo de construção, que NOME COD_FORN é a TABELA. Uma tabela é composta por linhas (TUPLAS) ENTIDADES ⇒ FORNECEDOR - PRODUTO RELACIONAMENTO ⇒ PEDIDO ATRIBUTOS NOME COD_PROD e colunas (ATRIBUTOS). FORNECEDOR Os RELACIONAMENTOS entre os dados também são PRODUTO ENTIDADE representados ou por TABELAS, ou através da reprodução dos valores de atributos. COD_FORN ATRIBUTOS DO RELACIONAMENTO ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 PEDIDO 18 ENTIDADE COD_PROD PREÇO QUANTIDADE RELACIONAMENTO ATRIBUTOS DO RELACIONAMENTO MANUEL CURSO GABARITO O MODELO RELACIONAL MODELO RELACIONAL ⇒ TABELAS FORNECEDOR - PRODUTO - PEDIDO ABORDAGEM RELACIONAL ⇒ está baseada no princípio de PRODUTO que as informações em um BD podem ser consideradas como FORNECEDOR NOME NOME COD_FORN COD_PROD relações matemáticas e que estão representadas de maneira uniforme, através do uso de tabelas (arquivo). Este princípio coloca os dados (entidades e relacionamentos) PEDIDO COD_FORN PREÇO QUANTIDADE nas ESTRUTURAS mais SIMPLES de armazenar dados, que são COD_PROD as TABELAS. MAPEAMENTO DO MER PARA O RELACIONAL O MODELO RELACIONAL O MODELO RELACIONAL TERMINOLOGIA DO MODELO RELACIONAL Conceito Principal ⇒ vem da teoria dos conjuntos (ÁLGEBRA RELACIONAL) atrelado à ideia de que não é relevante ao usuário saber onde, nem como os dados estão (transparência). Os usuários manipulam objetos dispostos em linhas e colunas das tabelas. O usuário pode lidar com estes objetos, usando um conjunto de operadores e funções de alto nível, da ÁLGEBRA RELACIONAL. • TABELA É CHAMADA DE ⇒ RELAÇÃO • LINHA DE UMA TABELA É CHAMADA DE ⇒ TUPLA • COLUNA DE UMA TABELA É CHAMADO DE ⇒ ATRIBUTO • O TIPO DE DADO QUE DESCREVE CADA COLUNA É CHAMADO DE ⇒ DOMÍNIO. O MODELO RELACIONAL ATRIBUTO TABELA - EXEMPLO TERMINOLOGIA DO MODELO RELACIONAL NOME • TABELA = RELAÇÃO CPF ENDEREÇO D_NASC E_CIVIL 000..... RUA......... 01/09/87 CASADA JOÃO 029..... AV........... 25/08/70 CASADO MARIA 039..... RUA......... 10/04/90 SOLTEIRA BETH 289..... RUA......... 23/07/78 DIVORC PEDRO 187..... AV........... 09/06/60 CASADO LÚCIA 004..... RUA......... 12/11/89 SOLTEIRA TUPLA ⇒ ANA • LINHA = TUPLA = REGISTRO • COLUNA = ATRIBUTO = CAMPO RELAÇÃO TABELA • TIPO DE DADO = DOMÍNIO DOMÍNIO DO ATRIBUTO NOME = CARACTERES DO ALFABETO DOMÍNIO DO ATRIBUTO CPF ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 19 = DÍGITOS DE 0 A 9 MANUEL CURSO GABARITO MODELO RELACIONAL BANCO DE DADOS RELACIONAL (BDR) ⇒ é uma coleção de EXEMPLO DE TABELA TABELAS cada qual designada por um NOME ÚNICO. TABELA ⇒ é um conjunto não ordenado de linhas. Cada linha é composta por uma conjunto de CAMPOS (registro) e cada CAMPO (coluna/atributo) é identificado por um nome. Cod_Emp Nome Cod_Dpto Cat_Func E5 Souza D1 C5 E3 Santos D2 C5 E2 Silva Soares D2 D1 C2 E1 C1 Em um BANCO DE DADOS RELACIONAL os dados ficam armazenados em TABELAS ! MODELO RELACIONAL CARACTERÍSTICAS DAS TABELAS - MODELO RELACIONAL CHAVE ⇒ é o conceito básico para IDENTIFICAR linhas e • Cada Tabela tem um nome ÚNICO através do qual ela é referenciada. • Cada Tabela contém um número fixo de colunas (grau tabela). • NÃO existem linhas IGUAIS. • A ORDEM das linhas é IRRELEVANTE (a identificação não é feita pela localização, mas pelo valor da CHAVE PRIMÁRIA). • Cada COLUNA tem um NOME ÚNICO (diferente das demais) • A ORDEM das colunas é IRRELEVANTE (a coluna é identificada pelo seu nome). • Cada coluna contém VALORES ATÔMICOS (não são permitidos grupos de valores). estabelecer RELAÇÕES entre TABELAS de um Banco de Dados Relacional. É um conjunto de um ou mais CAMPOS (ATRIBUTOS) de uma Tabela. CHAVE ⇒ é um conjunto de atributos de uma relação (tabela) que pode ser utilizado para a realização de qualquer operação que envolva atributos e valores de atributos. MODELO RELACIONAL MODELO RELACIONAL CHAVE PRIMÁRIA ⇒ é um campo ou conjunto de campos que BANCO DE DADOS RELACIONAL - TIPOS DE CHAVES identifica de forma EXCLUSIVA cada registro (TUPLA). CHAVE PRIMÁRIA UMA CHAVE PRIMÁRIA CHAVE ESTRANGEIRA • NÃO PODE TER REPETIÇÃO • NÃO PODE SER NULA CHAVE CANDIDATA TIPOS DE CHAVES PRIMÁRIAS CHAVE ALTERNATIVA • SIMPLES ⇒ UM SÓ ATRIBUTO • COMPOSTA ⇒ DOIS OU MAIS ATRIBUTOS OBS ⇒ SUPERCHAVE = CHAVE PRIMÁRIA ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 20 MANUEL CURSO GABARITO EXEMPLO DE CHAVE PRIMÁRIA COMPOSTA - 2 CAMPOS TIPOS DE CHAVES PRIMÁRIAS TAB_DEPENDENTES CHAVE PRIMÁRIA SIMPLES (um só campo) ⇒ exemplos típicos: CPF, número do título de eleitor ou o número de matrícula de um aluno em uma universidade. Cod_Emp E1 N_Dep 01 Nome João Tipo Filho D_Nasc 12/12/91 E1 E2 E6 02 01 01 Maria Ana Paula Esposa Esposa Esposa 01/01/50 05/11/55 04/07/50 E6 02 José Filho 03/02/85 CHAVE PRIMÁRIA COMPOSTA (vários campos) ⇒ utilizada em situações em que não se pode garantir a exclusividade de uma linha (registro) usando apenas um campo (atributo). Campos da Chave Primária ⇒ Cod_Emp e N_Dep NÃO É POSSÍVEL IDENTIFICAR UM EMPREGADO DE FORMA ÚNICA APENAS PELO CAMPO Cod_Emp ! EXEMPLO DE CHAVE ESTRAGEIRA CHAVE ESTRANGEIRA ⇒ é um campo de uma tabela que é CHAVE PRIMÁRIA de OUTRA TABELA. Uma Tabela-02 Tabela-01 chave estrangeira pode ter REPETIÇÃO, pode ser NULA e deve ter o mesmo tipo de dado da chave primária da outra tabela. É usada para DEFINIR o CodDepto NomeDepto CodEmp Nome CodDepto D1 Compras E1 Soares D1 C1 D2 Engenharia E2 Silva D2 C2 D3 Vendas E3 Santos D2 C5 D4 Comercial E5 Souza D1 C5 CHAVE PRIMÁRIA RELACIONAMENTO entre duas tabelas. CHAVE PRIMÁRIA CatFunc CHAVE ESTRANGEIRA CodDepto ⇒ é CHAVE PRIMÁRIA na Tabela-01 e é CHAVE ESTRANGEIRA na Tabela-02. Foi usada para criar um relacionamento entre as 2 tabelas. EXEMPLO DE CHAVE ESTRANGEIRA NULA TAB_SÓCIO Sócio TAB_QUADRA Nome Quadra Instrutor Nome 01 Nadal Q1 Saibro I1 Guga 02 Federer Q2 Grama I2 Safin 03 Djakovic Q3 Saibro I3 Agassi 04 Murray Q4 Grama I4 Sampras CH-Primária CHAVE CANDIDATA E CHAVE ALTERNATIVA TAB_INSTRUTOR Tipo • Uma relação pode ter várias chaves para identificação UNÍVOCA de suas tuplas, onde cada uma é denominada de Chave CANDIDATA. • Entre as chaves CANDIDATAS UMA é escolhida pelo DBA (durante a fase de projeto lógico) para ser suportada pelo SGBD e assim, manter a restrição de UNICIDADE. • Esta chave escolhida é denominada de Chave PRIMÁRIA. Desta forma, uma relação NUNCA apresentará tuplas (linhas) repetidas o que significa que é possível a identificação de cada tupla (linha) separadamente. CH-Primária CH-Primária TAB_RESERVA CH-PRIMÁRIA CH-ESTRG Cod_Reserva Sócio Data CH-ESTRG CH-ESTRG Quadra Instrutor CHAVE ESTRANGEIRA 01 01 02/06 Q1 I2 02 02 04/06 Q2 I1 03 02 05/06 Q2 I3 PODE TER REPETIÇÃO 04 03 07/06 Q3 I4 PODE SER NULA 05 01 08/06 Q1 06 04 09/06 Q4 ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 NULA I1 21 MANUEL CURSO GABARITO MODELO RELACIONAL CHAVE CANDIDATA E CHAVE ALTERNATIVA CHAVE CANDIDATA ⇒ é um atributo (campo) ou • Entre as Chaves CANDIDATAS, aquelas NÃO ESCOLHIDAS para ser a Chave Primária são denominadas de Chaves ALTERNATIVAS e podem ser utilizadas como chaves de consultas, chaves de ordenação lógica (em consultas por formulários e/ou relatórios) ou chaves de ordenação física das relações em termos de arquivos de dados. • As chaves que NÃO PERTENCEM aos conjunto de Chaves CANDIDATAS, ou seja, são chaves que não permitem a identificação individual das tuplas da relação, são denominadas de CHAVES SECUNDÁRIAS. grupamento de atributos que têm a propriedade de identificar UNIVOCAMENTE uma ocorrência da entidade. Uma Chave Candidata pode vir a ser uma Chave PRIMÁRIA. A Chave Candidata que não é Chave Primária também chama-se Chave ALTERNATIVA. CHAVE ALTERNATIVA ⇒ é um campo de uma tabela que pode ser utilizado também como CHAVE PRIMÁRIA. Um exemplo típico é o campo CPF, que determina univocamente uma linha em uma tabela de um Banco de Dados Relacional. MODELO RELACIONAL MODELO RELACIONAL NORMALIZAÇÃO ⇒ são regras utilizadas no desenho de um banco de dados que permitem um armazenamento consistente e um eficiente acesso aos dados. FORMAS NORMAIS ⇒ são um conjunto de REGRAS que regem o modo como ATRIBUTOS podem ser ORGANIZADOS PRINCIPAIS OBJETIVOS DA NORMALIZAÇÃO: ELIMINAR REDUNDÂNCIA (o mesmo dado em mais de uma tabela). DIMINUIR INCONSISTÊNCIA (o mesmo dado com valores diferentes em duas tabelas). Possibilitar MAIOR PERFORMANCE nas pesquisas. REDUZIR a NECESSIDADE de REESTRUTURAR as relações quando novos tipos de dados são introduzidos Garantir que a SEMÂNTICA dos atributos seja CLARA. em TABELAS. As formas normais são 5. FORMAS NORMAIS NORMALIZAÇÃO EXEMPLO-1 (1FN) - Considere a Tabela abaixo A 4ª (4FN) e a 5ª (5FN) formas normais são chamadas de Formas Normais de BOYCE-CODD (FNBC). PRIMEIRA FORMA NORMAL (1FN) ⇒ uma tabela (relação) Aluno (NÃO 1FN) está na 1FN se: NOME IDADE 01/01/1900 • TODOS os seus ATRIBUTOS são ATÔMICOS (INDIVISÍVEIS) N_MATR Português, Matemática, etc PROBLEMAS • NÃO SÃO MULTIVALORADOS. • DATA_NASC É UM GRUPAMENTO ⇒DIA_NASC/MÊS_NASC/ANO_NASC • DISCIPLINAS É MULTIVALORADO ⇒ PORTUGUÊS, MATEMÁTICA, etc 1FN ⇒ NÃO HÁ GRUPAMENTO e NENHUM ATRIBUTO É Para atender a 1FN: • DATA_NASC deve ser dividido (se tornar atômico) • Devemos criar uma NOVA TABELA para disciplinas e colocar o nome de cada disciplina em linhas separadas (univalorado) MULTIVALORADO. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 MULTIVALORADO GRUPAMENTO DATA_NASC DISCIPLINAS 22 MANUEL CURSO GABARITO NORMALIZAÇÃO - EXEMPLO-1 (1FN) Aluno (NÃO 1FN) GRUPAMENTO NOME DATA_NASC DISCIPLINAS 01/01/1900 Português, Matemática, etc IDADE FORMAS NORMAIS MULTIVALORADO SEGUNDA FORMA NORMAL (2FN) ⇒ uma tabela está na 2FN se: N_MATR • ESTIVER na PRIMEIRA forma normal (1FN) TAB_Aluno (1FN) NOME IDADE DIA_NASC MÊS_NASC ANO_NASC • TODOS os ATRIBUTOS que NÃO PERTENCEM à CHAVE, N_MATR DEPENDEM DA CHAVE através de uma dependência funcional TAB_DISCIPLINA (1FN) ELEMENTAR, isto é, dependem da TOTALIDADE DA CHAVE e DISCIPLINA não apenas de UM dos seus atributos isoladamente (de uma N_MATR Português parte da chave). Matemática As duas tabelas (TAB_Aluno e TAB_DISCIPLINA) estão na 1FN ! NORMALIZAÇÃO - 2FN EXEMPLO ⇒ vamos supor uma TABELA (ENCOMENDA) para registar informações sobre as ENCOMENDAS realizadas por CLIENTES e os PRODUTOS nela contidos. ENCOMENDA (N-Encomenda ; DataEnc ; TotalEnc ; CodCliente ; NomeCliente ; End_Cliente ; CodProduto ; Descrição ; PreçoUnitário ; Quantidade; TotalProd) O campo N-Encomenda identifica cada encomenda feita por um cliente. ENCOMENDA (N-Encomenda ; DataEnc ; TotalEnc ; CodCliente ; NomeCliente ; End_Cliente ; CodProduto ; Descrição ; PreçoUnitário ; Quantidade; TotalProd) • De N-Encomenda dependem: DataEnc, TotalEnc, CodCliente, NomeCliente e End_Cliente; Quantidade, TotalProd • De CodProduto dependem: Descrição, PreçoUnitário; A tabela ENCOMENDA encontra-se na 1FN porque todos os A tabela ENCOMENDA NÃO SE ENCONTRA na 2FN porque existem campos que dependem de partes diferentes da chave. Alguns dependem de N-Encomenda e outros de CodProduto. campos são atômicos e não existe repetição de valores. Obs1: N-Encomenda e CodProduto são CAMPOS CHAVE (estão sublinhados) ! Obs2: DataEnc foi considerado pelo projetista como atômico. AÇÃO ⇒ DIVIDIR A TABELA ENCOMENDA - CRIA A TABELA DETALHE ! RESTRIÇÕES DE INTEGRIDADE RESTRIÇÕES DE INTEGRIDADE Um dos principais objetivos de Banco de Dados é MANTER a • São REGRAS a respeito dos valores que podem ser armazenados nas relações e que devem ser sempre satisfeitas. Existem regras que são consideradas necessárias a uma base de dados relacional. INTEGRIDADE dos dados. Dizer que os dados de um BD estão ÍNTEGROS significa dizer que eles REFLETEM CORRETAMENTE a REALIDADE REPRESENTADA pelo BD e que são CONSISTENTES entre si. Para garantir a integridade RESTRIÇÃO DE INTEGRIDADE DA CHAVE dos dados o SGBD oferece o mecanismo de restrições de RESTRIÇÃO DE INTEGRIDADE DE DOMÍNIO integridade. Uma restrição de integridade é uma regra de RESTRIÇÃO DE INTEGRIDADE DA ENTIDADE consistência de dados que é garantida pelo próprio SGBD. Em SGBD Relacionais, existem as seguintes restrições RESTRIÇÃO DE INTEGRIDADE REFERENCIAL de integridade conhecidas. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 23 MANUEL CURSO GABARITO RESTRIÇÕES DE INTEGRIDADE RESTRIÇÕES DE INTEGRIDADE RESTRIÇÃO DE INTEGRIDADE DA CHAVE ⇒ uma chave candidata qualquer não pode ter o mesmo valor em duas tuplas distintas da mesma relação. RESTRIÇÃO REFERENCIAL ⇒ a restrição de integridade referencial declara que uma tupla em uma relação, que faz referência a outra relação, deve se INTEGRIDADE DE DOMÍNIO ⇒ especifica que o valor de um atributo (campo) deve obedecer a definição de valores admitidos para a coluna (o domínio da coluna). referir a uma tupla existente nessa relação. O conceito de Integridade Referencial depende do conceito de CHAVE ESTRANGEIRA. A INTEGRIDADE REFERENCIAL é utilizada RESTRIÇÃO DE INTEGRIDADE DA ENTIDADE ⇒ a chave primária de qualquer relação não pode ser nula em nenhuma tupla dessa relação. para garantir a Integridade dos dados entre as TABELAS RELACIONADAS. RESTRIÇÃO DE INTEGRIDADE REFERENCIAL Exemplo-01 ⇒ considere um relacionamento do tipo 1:N entre a tabela CLIENTES e a tabela PEDIDOS (um cliente pode fazer vários pedidos). Com a Integridade Referencial, o BD não permite que seja cadastrado um pedido para um cliente que ainda não foi cadastrado. Em outras palavras, ao cadastrar um pedido, o BD verifica se o código do cliente que foi digitado já existe na tabela CLIENTES. Se não existir, o cadastro do pedido não será aceito. BANCO DE DADOS LINGUAGEM DE CONSULTA ⇒ é uma linguagem na qual um usuário REQUISITA INFORMAÇÕES a um Sistema Gerenciador de Banco de Dados. Estas linguagens são tipicamente de mais ALTO NÍVEL que as linguagens de programação padrão, e são classificadas como PROCEDURAIS e NÃO-PROCEDURAIS. Exemplo-02 ⇒ um filho de um funcionário não pode ser cadastrado como dependente (TAB_DEPENDENTE) sem que o pai trabalhe na empresa (TAB_FUNCIONÁRIO). BANCO DE DADOS ÁLGEBRA RELACIONAL ⇒ é uma linguagem de consulta PROCEDURAL. Ela consiste em um conjunto de operações que tomam uma ou mais RELAÇÕES como entrada e produzem como resultado uma NOVA RELAÇÃO. BANCO DE DADOS SQL (Structured Query Language) ⇒ é a linguagem padrão de consulta a um BANCO DE DADOS RELACIONAL (BDR). Mais que uma linguagem de consulta o SQL oferece funções ÁLGEBRA RELACIONAL Maneira teórica de se manipular um BD Relacional (BDR) É uma linguagem de consulta procedural É um conjunto de operações onde ENTRADA ⇒ uma ou mais relações (tabelas) SAÍDA ⇒ uma nova relação (tabela) ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 DE INTEGRIDADE para DEFINIÇÃO, MANIPULAÇÃO e CONTROLE dos dados de em um Banco de Dados Relacional. 24 MANUEL CURSO GABARITO SQL (Structured Query Language) FUNÇÕES AGREGADAS ⇒ são funções que tomam uma coleção de valores como entrada, retornando um valor simples. • Linguagem padrão de consulta a Banco de Dados Relacionais. • Unifica a DDL e a DML numa única linguagem. AVG ⇒ MÉDIA de uma coluna • Engloba ainda outros aspectos, como por exemplo os relacionados COUNT ⇒ CONTAGEM com a ADMINISTRAÇÃO DA BASE DE DADOS. • É uma linguagem NÃO-PROCEDIMENTAL MAX ⇒ obtém o MAIOR valor de uma coluna (PROCEDIMENTAL = PROCEDURAL). MIN • Funciona em modo interativo. ⇒ obtém o MENOR valor de uma coluna SUM ⇒ obtém a SOMA de valores de uma coluna • Existem várias extensões à linguagem SQL. • É uma norma ISO e ANSI. ISO (International Standards Organization) ANSI (American National Standards Institute) PARTES DO SQL - GRUPOS DE COMANDOS PARTES DO SQL - GRUPOS DE COMANDOS DDL (Data Definition Language) ⇒ permite ao usuário DDL (Data DEFINITION Language) DEFINIR, ALTERAR e REMOVER ESTRUTURAS (tabelas, visões, índices). DML (Data MANIPULATION Language) DML (Data Manipulation Language) ⇒ permite ao usuário DCL (Data CONTROL Language) SELECIONAR, INSERIR, ATUALIZAR dados em tabelas (REGISTROS). DTL (Data TRANSACTION Language) DCL (Data Control Language) ⇒ permite CONTROLAR o DQL (Data QUERY Language) ACESSO de usuários ao SGBD, ou seja, controlar a autorização para o uso de dados e realização de operações. PARTES DO SQL - GRUPOS DE COMANDOS DDL - PRINCIPAIS COMANDOS DTL (Data Transaction Language) ⇒ utilizado pelos CREATE TABLE ⇒ cria uma nova tabela. desenvolvedores em transações. Os principais comandos são ALTER TABLE ⇒ altera a definição de uma tabela. COMMIT e ROLLBACK. DROP TABLE ⇒ remove (exclui) uma tabela. DQL (Data Query Language) ⇒ Linguagem de Consulta de Dados. Principal comando SELECT. Muitos TRUNCATE TABLE ⇒ remove todas as linhas (registros) de uma tabela. Limpa (esvazia) a tabela, mas não a exclui. Tem o mesmo efeito do comando DELETE (DML) sem a cláusula WHERE, mas como não varre a tabela é mais rápido. autores consideram o SELECT um comando DML. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 25 MANUEL CURSO GABARITO OBSERVAÇÃO DML - PRINCIPAIS COMANDOS SELECT ⇒ seleciona registros dependendo de uma ou DDL ⇒ DATA DEFINITION LANGUAGE - trabalha mais condições. Muitos autores consideram SELECT um com OBJETOS (exemplo: TABELAS , ÍNDICES, comando DQL. VISÕES). DELETE ⇒ remove (exclui) registros de uma tabela. DML ⇒ DATA MANIPULATION LANGUAGE - INSERT ⇒ insere um registro (uma tupla) em uma tabela. UPDATE ⇒ altera os valores de um ou mais registros de trabalha com LINHAS (REGISTROS) de uma Tabela. uma tabela DCL - PRINCIPAIS COMANDOS DQL - PRINCIPAL COMANDO GRANT ⇒ concessão de privilégios a tabelas, visões, etc. SELECT ⇒ seleciona registros dependendo de uma ou mais Exemplos: condições. Muitos autores consideram o SELECT um comando • GRANT CREATE TABLE, CREATE VIEW TO CARLOS; • GRANT SELECT, INSERT ON DEPTO TO JULIO, MARIO; DML. Embora tenha apenas um comando, a DQL (Data Query Language) é a parte da SQL mais utilizada. O comando SELECT REVOKE ⇒ revogação de privilégios a tabelas e visões. permite ao usuário especificar uma CONSULTA (QUERY) como Exemplo: uma descrição do resultado desejado. Esse comando é REVOKE SELECT, INSERT ON DEPTO FROM MARIO; composto de várias CLÁUSULAS e OPÇÕES, possibilitando elaborar consultas das mais simples às mais elaboradas. SQL - ESTRUTURA BÁSICA DE UMA CONSULTA CLÁUSULAS ⇒ SELECT / FROM / WHERE EXEMPLO SELECT Nome, Salário SQL - ESTRUTURA BÁSICA DE UMA CONSULTA CLÁUSULAS ⇒ GROUP BY / HAVING QUEM ? Os campos Nome, Salário DE ONDE ? FROM Tab_Funcionário ⇒ Da tabela Tab_Funcionário RESTRIÇÃO WHERE Salário > 10000 ⇒ Com Salário > 10000 Obs1 ⇒ Para selecionar TODOS os campos (colunas) de uma tabela basta usar: SELECT * ou SELECT ALL Obs2 ⇒ Para selecionar TODAS as linhas (registros) basta NÃO USAR o comando WHERE. GROUP BY ⇒ utilizada para separar os REGISTROS ⇒ ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 selecionados (pelo SELECT) em GRUPOS ESPECÍFICOS. HAVING ⇒ utilizada para expressar a CONDIÇÃO que deve satisfazer CADA GRUPO gerado pelo GROUP BY. 26 MANUEL CURSO GABARITO SQL - ESTRUTURA BÁSICA DE UMA CONSULTA CLÁUSULAS ⇒ GROUP BY / HAVING SQL - ESTRUTURA BÁSICA DE UMA CONSULTA CLÁUSULAS ⇒ GROUP BY / HAVING A sintaxe do comando SELECT com as cláusulas GROUP BY e HAVING é: SELECT <coluna(s)> QUAIS os CAMPOS ? FROM <tabela> De QUAL tabela ? WHERE <condições> Qual a RESTRIÇÃO dos CAMPOS? GROUP BY <coluna(s)> Como GRUPAR ? HAVING <condições> QUAIS vão fazer parte do GRUPO ? EXEMPLO ⇒ TABELA ⇒ Tab_Vendas (Vendedor,Mês,Venda) 01- Qual o TOTAL das VENDAS de CADA VENDEDOR ? SELECT Vendedor, SUM (Venda) ⇒ O QUÊ ? FROM Tab_Vendas ⇒ DE ONDE ? GROUP BY Vendedor ⇒ GRUPADO POR VENDEDOR ! Obs. SUM ⇒ calcula a SOMA de todos os valores de um CAMPO. OBS. GROUP BY deverá vir SEMPRE APÓS a cláusula WHERE ou APÓS a cláusula FROM quando não existir WHERE ! SQL - ESTRUTURA BÁSICA DE UMA CONSULTA CLÁUSULAS ⇒ GROUP BY / HAVING EXEMPLO ⇒ TABELA ⇒ Tab_Vendas (Vendedor,Mês,Venda) 02- Qual a MÉDIA das VENDAS de CADA VENDEDOR no MÊS de MAIO (05)? SELECT Vendedor, Mês, AVG(Venda) ⇒ O QUÊ ? SQL - ESTRUTURA BÁSICA DE UMA CONSULTA CLÁUSULAS ⇒ GROUP BY / HAVING EXEMPLO ⇒ TABELA ⇒ Tab_Vendas (Vendedor,Mês,Venda) 03- QUAIS VENDEDORES tiveram MÉDIA de venda MAIOR do que 2000 ? SELECT Vendedor,Venda,AVG(Venda) FROM Tab_Vendas ⇒ DE ONDE ? FROM Tab_Vendas WHERE Mês = ’05’ ⇒ RESTRIÇÃO SOBRE A SELEÇÃO ! GROUP BY Vendedor GROUP BY Vendedor ⇒ GRUPADO POR VENDEDOR ! HAVING AVG(Venda) > 2000 Obs. AVG ⇒ calcula a MÉDIA de todos os valores de um CAMPO. Obs. AVG ⇒ calcula a MÉDIA de todos os valores de um campo. CLÁUSULAS ⇒ GROUP BY/ HAVING SQL - ESTRUTURA BÁSICA DE UMA CONSULTA CLÁUSULAS ⇒ GROUP BY / HAVING OBSERVAÇÕES EXEMPLO ⇒ TABELA ⇒ Tab_Vendas (Vendedor,Mês,Venda) 04- QUAIS vendedores venderam MAIS que 2000 no mês de MAIO (05) ? 01- GROUP BY SELECT Vendedor,Mês,Venda,SUM(Venda) ANTES da cláusula HAVING, já que os grupos são formados e FROM Tab_Vendas as funções de grupos são calculadas ANTES de resolver a WHERE Mês = ’05’ cláusula HAVING. GROUP BY Vendedor 02- GROUP BY ⇒ organiza dados em GRUPOS, produzindo HAVING SUM(Venda) > 2000 sumários. A cláusula HAVING ESTABELECE CONDIÇÕES ⇒ é usado para GERAR AGREGADOS utilizados junto com o comando SELECT e deve ser colocado para listar esses grupos. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 27 MANUEL CURSO GABARITO CLÁUSULAS ⇒ GROUP BY/ HAVING CLÁUSULA ⇒ SELECT DISTINCT OBSERVAÇÕES DISTINCT ⇒ é usada para retornar apenas valores distintos (diferentes) em uma tabela. 03- HAVING ⇒ está para a cláusula GROUP BY, assim como a TAB_VENDAS ID VENDEDOR 1 BETO 2 GABRIEL 3 PATY 4 MÔNICA cláusula WHERE está para o comando SELECT. 04- HAVING ⇒ só é usada no SELECT com GROUP BY, já WHERE pode ser utilizada em várias outras instruções como 5 6 DELETE, UPDATE e INSERT. BETO MÔNICA Mês JAN ABR ABR MAI Venda 2000,00 5500,00 12000,00 15000,00 ABR MAR 3000,00 5900,00 VENDEDOR BETO GABRIEL PATY MÔNICA SELECT DISTINCT VENDEDOR FROM TAB_VENDAS CLÁUSULA ⇒ SELECT ORDER BY CLÁUSULA ⇒ SELECT ORDER BY OBSERVAÇÕES ORDER BY ⇒ lista os resultados de uma consulta por uma ordem em particular (ascendente ou descendente) TAB_VENDAS ID VENDEDOR Mês 1 2 3 4 5 6 BETO GABRIEL PATY MÔNICA BETO MÔNICA JAN ABR ABR MAI ABR MAR Venda 2000,00 5500,00 12000,00 15000,00 3000,00 5900,00 VENDEDOR BETO BETO GABRIEL MÔNICA PATY MÔNICA 01- É possível ordenar por MAIS DE UMA COLUNA. SELECT Vendedor, Venda FROM TAB_VENDAS ORDER BY Venda 2000,00 3000,00 5500,00 5900,00 12000,00 15000,00 Vendedor ASC, Venda DESC 02- É possível ordenar utilizando a POSIÇÃO da coluna em vez do nome do campo. Assim, para exibir Vendedor e Venda, ordenando por Venda em ordem ascendente basta escrever: SELECT Vendedor, Venda FROM TAB_VENDAS ORDER BY 4 ASC (4 indica que é a coluna 4 da Tabela). SELECT Vendedor, Venda FROM TAB_VENDAS ORDER BY Venda ASC SQL - OUTROS CONCEITOS E COMANDOS SQL - OUTROS CONCEITOS E COMANDOS FORMULÁRIO ⇒ É o objeto de COMUNICAÇÃO entre o banco RELATÓRIO ⇒ é uma maneira eficaz de apresentar os dados em um formato impresso. Como o usuário tem controle sobre o de dados e o USUÁRIO. Permite a ENTRADA de dados e a tamanho e a aparência de todos os elementos de um relatório, é visualização de informações de uma maneira muito mais possível exibir as informações da maneira como deseja vê-las. elegante e controlada. Se o formulário é a melhor maneira de entrar com dados, o relatório é a melhor maneira de imprimir informações. Os relatórios dos SGBD’s (ACCESS, etc) possuem muitos recursos tais como preenchimento de etiquetas, envelopes e interação com o Word em uma mala direta. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 28 MANUEL CURSO GABARITO SQL - OUTROS CONCEITOS E COMANDOS SQL - OUTROS CONCEITOS E COMANDOS VIEW ⇒ é uma TABELA VIRTUAL gerada a partir do resultado de uma instrução SELECT. Uma VIEW contém linhas e colunas, como se fosse uma tabela real. Os campos na VIEW são obtidos de uma tabela de um banco de dados. Exemplo: TRIGGER (disparo) ⇒ é um BLOCO DE COMANDOS que é EXECUTADO AUTOMATICAMENTE. Em vez de serem executados CREATE VIEW < NOME DA VIEW> AS SELECT <CAMPOS> pelo usuário, eles são executados pelo SERVIDOR do BANCO de DADOS quando certas operações FROM <TABELA> WHERE <CONDIÇÃO> são realizadas numa tabela, como por exemplo: Insert, Delete CREATE VIEW COMEDIAS AS SELECT * FROM FILMES WHERE TIPO = 'COMÉDIA'; ou Update. SQL - OUTROS CONCEITOS E COMANDOS SQL - OUTROS CONCEITOS E COMANDOS TRIGGER (disparo) ⇒ são usados para realizar tarefas ETAPAS DE CRIAÇÃO DE UM TRIGGER relacionadas Um COMANDO SQL que vai DISPARAR o TRIGGER (Insert, com CONTROLES como: VALIDAÇÕES, RESTRIÇÕES de ACESSO, ROTINAS DE SEGURANÇA e Delete, Update). CONSISTÊNCIA de dados. Esses controles deixam de ser A AÇÃO que o TRIGGER vai EXECUTAR (geralmente um executados pela aplicação e passam a ser executados pelos bloco de códigos SQL). TRIGGERS. SQL - OUTROS CONCEITOS E COMANDOS SQL - OUTROS CONCEITOS E COMANDOS TRANSAÇÕES - DTL (Data TRANSACTION Language) TRANSACTION (TRANSAÇÃO-DTL) ⇒ é um conjunto de A execução de um programa que inclui operações de acesso a um banco de dados é chamada de TRANSAÇÃO. Se as procedimentos que é executado em um Banco de Dados e que operações em questão não alteram os dados do banco de para o usuário é visto como uma ÚNICA AÇÃO. A dados, a transação é chamada de read-only transaction. INTEGRIDADE de uma transação depende de 4 (quatro) No entanto, a maioria das transações executa operações que PROPRIEDADES, conhecidas como ACID. realizam ALTERAÇÕES no BD. A palavra TRANSAÇÃO se refere então a um programa que realiza operações que ALTERAM REGISTROS de um Banco de Dados. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 29 MANUEL CURSO GABARITO PROPRIEDADES DE UMA TRANSACTION PROPRIEDADES DE UMA TRANSACTION SER ISOLAMENTO ⇒ como as transações são executadas EXECUTADA PELA METADE, isto é, ou se executa por CONCORRENTEMENTE no mesmo banco de dados, elas INTEIRO, ou se retorna para o ESTADO ANTERIOR a devem ser ISOLADAS das OUTRAS operações. ATOMICIDADE ⇒ uma transação NÃO PODE transação, onde nada foi executado. DURABILIDADE ⇒ está relacionada à capacidade do COERÊNCIA ⇒ o banco de dados é coerente se todas as SGBD de se recuperar de falhas no sistema e no meio. As suas RESTRIÇÕES de INTEGRIDADE SÃO SATISFEITAS. atualizações de uma transação efetivada devem ser PRESERVADAS e REGISTRADAS em algum meio durável. STORED PROCEDURES TRANSAÇÕES SÃO SUPORTADAS PELOS SEGUINTES MECANISMOS Quando uma aplicação solicita a execução de uma QUERY ROLLBACK ⇒ serve para DESFAZER as alterações que foram efetuadas em uma tabela e que não tenham sido confirmadas. (CONSULTA), todo o texto da mesma é enviado pela rede ao SERVIDOR onde será finalmente compilado e executado. COMMIT ⇒ é o contrário do ROLLBACK ou seja, serve para CONFIRMAR as alterações que por ventura sejam feitas. Uma vez executado um COMMIT não podemos mais retornar a situação anterior. STORED PROCEDURE ⇒ é uma sequência de comandos SQL, armazenados no Dicionário de Dados (DD), agrupados de forma que ao executar a STORED PROCEDURE esses comandos são executados todos sequencialmente DIRETAMENTE no SERVIDOR. ICMS/RJ - 2008 01- No funcionamento de um sistema de gerenciamento de CURSO GABARITO banco de dados, uma situação de falha ocorre quando dois usuários tentam alterar, simultaneamente, um mesmo registro. ISS/NITERÓI Por exemplo, no caso de dois clientes de uma empresa de BANCO DE DADOS EXERCÍCIOS cartões de crédito tentarem realizar, num dado instante, a liquidação de um mesmo boleto da mesma fatura, um deles receberá uma mensagem de falha. A situação descrita é conhecida por: ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 30 MANUEL CURSO GABARITO BADESC-2010 (A) Multilock (B) Crashing. (C) Overlock. (D) Locking. (E) Deadlock. 02- Assinale a alternativa que apresenta as características de uma entidade fraca. (A) Possui identificação própria ou sua existência depende de uma outra denominada de forte. (B) Não possui identificação própria ou sua existência depende de uma outra denominada de forte. (C) Possui identificação própria ou sua existência não depende de uma outra denominada de forte. (D) Possui identificação própria ou sua existência depende de uma outra não denominada de forte. (E) Não possui identificação própria ou sua existência não depende de uma outra denominada de forte. DEADLOCK - impasse, dois ou mais processos ficam impedidos de continuar suas execuções. BADESC-2010 BADESC-2010 03- Os objetivos dos compiladores DDL, DML e DCL são, respectivamente: (A) criar os objetos do banco de dados, manipular (recuperação, inserção, remoção e alteração) de dados nos objetos criados pela DDL e fornecer privilégio de acesso às informações. (B) fornecer privilégio de acesso às informações, criar os objetos do banco de dados e manipular (recuperação, inserção, remoção e alteração) de dados nos objetos criados pela DDL. (C) manipular (recuperação, inserção, remoção e alteração) de dados nos objetos criados pela DML, criar os objetos do banco de dados e fornecer privilégio de acesso às informações. Os objetivos dos compiladores DDL, DML e DCL são, respectivamente: (D) fornecer privilégio de acesso às informações, manipular (recuperação, inserção, remoção e alteração) de dados nos objetos criados pela DDL e criar os objetos do banco de dados. (E) criar os objetos do banco de dados, fornecer privilégio de acesso às informações e manipular (recuperação, inserção, remoção e alteração) de dados nos objetos criados pela DDL. BADESC-2010 BADESC-2010 05- A arquitetura de um SGBD ou a arquitetura de um sistema de banco de dados, também denominada de arquitetura ANSI/SPARC em três níveis, determina que um SGBD descreva como os dados devem ser armazenados e acessados e conter estes mesmos dados de fato armazenados. As terminologias desta arquitetura que contêm essas descrições e os dados de fato armazenados, são respectivamente: 04- A propriedade de uma transação denominada de ACID envolve os seguintes conceitos: (A) Atômico, Concorrente, Isolamento e Durabilidade. (B) Atomicidade, Consistência, Isolamento e Durabilidade. (C) Atomicidade, Concorrente, Inconsistente e Durabilidade. (D) Atomicidade, Consistência, Integridade e Dependência de dados. (E) Atomicidade, Consistência, Isolamento e Dependência de dados. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 (A) esquema físico e nível físico. (B) nível físico e esquema físico. (C) nível físico e esquema conceitual. (D) nível conceitual e esquema físico. (E) nível conceitual e esquema conceitual. 31 MANUEL CURSO GABARITO BADESC-2010 06- Analise o seguinte conceito. “Situação que dois ou mais usuários (ou processos) se autobloqueiam devido a não liberação de recursos concorrentes, onde, cada um, separadamente, espera indefinidamente que o outro finalize o processamento, criando um impasse. Portanto, é uma situação em que duas ou mais transações se encontram em estado de espera simultânea, cada uma esperando que uma outra finalize o processamento para poder prosseguir”. A denominação desse conceito e o termo técnico que o provoca são, respectivamente: (A) deadlock e bloqueio. (B) bloqueio e deadlock. (C) bloqueio e inconsistência. (D) inconsistência e bloqueio. (E) deadlock e inconsistência. BADESC-2010 BADESC-2010 07- Os conceitos que envolvem os termos restrição de integridade de entidade e restrição de integridade referencial são, respectivamente: (A) nenhum atributo pertencente à chave primária poderá receber valor NULL / os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é chave primária, quando for diferente de NULL. (B) os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é chave primária, quando for diferente de NULL / nenhum atributo pertencente à chave primária poderá receber valor NULL. (C) nenhum atributo pertencente à chave primária poderá receber valor NULL / os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é chave primária, somente quando for igual a NULL. (D) os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é chave primária, somente quando for igual a NULL / nenhum atributo pertencente à chave primária poderá receber valor NULL. (E) os atributos pertencentes à chave primária deverão conter sempre valores diferentes de NULL / os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é chave primária, somente quando for igual a NULL. BADESC-2010 RESTRIÇÃO DE INTEGRIDADE DA ENTIDADE ⇒ a chave primária de qualquer relação não pode ser nula em nenhuma tupla dessa relação. 08- O processo de obter uma única entidade de várias entidades, que contenha todos os atributos comuns de todas estas entidades, é denominado de: RESTRIÇÃO DE INTEGRIDADE REFERENCIAL ⇒ a restrição de integridade referencial declara que uma tupla em uma relação, que faz referência a outra relação, deve se referir a uma tupla existente nessa relação. O conceito de Integridade Referencial depende do conceito de CHAVE ESTRANGEIRA. A INTEGRIDADE REFERENCIAL é utilizada para garantir a Integridade dos dados entre as TABELAS RELACIONADAS. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 (A) agregação. (B) normalização. (C) normatização. (D) generalização. (E) especialização. 32 MANUEL CURSO GABARITO BADESC-2010 BADESC-2010 09- Na linguagem SQL, no comando select, uma cláusula possibilita a remoção de entradas em duplicata num conjunto de resultados. 10- Considere o seguinte texto. “conjunto de um ou mais atributos que, tomados coletivamente, nos permitem identificar, de maneira única, uma entidade em um conjunto de entidades” O texto acima é a definição de: Esta cláusula é mostrada no seguinte comando: (A) select unique CIDADE into BADESC (B) select distinct CIDADE into BADESC (C) select distinct CIDADE over BADESC (D) select distinct CIDADE from BADESC (E) select unique CIDADE from BADESC (A)Chave. (B) Surrogate. (C) Superchave. (D) Chave primária. (E) Chave candidata. BADESC-2010 DETRAN_RN_ASSESSOR_TEC_INFO_BD_2010 11- A respeito de Sistema de Banco de Dados, analise as afirmativas a seguir. I. Os dados e a descrição correspondente são armazenadas na base e gerenciadas pelo SGBD. II. A representação conceitual é feita por meio de um modelo de dados que só usa conceitos lógicos. III. O controle de concorrência garante que o resultado de várias modificações à base de dados seja correto. 12- Sobre Bancos de Dados Relacionais, analise: I. A abordagem relacional está baseada no princípio de que as informações em uma base de dados podem ser consideradas relações matemáticas e que estão representadas de maneira uniforme com o uso de tabelas bidimensionais. II. A teoria relacional enxerga o banco de dados como um conjunto de tabelas, e as operações que as utilizam são feitas por linguagem que o manipula, não sendo procedurais, ou seja, manipulando conjuntos de uma só vez. III. É indispensável aos usuários saber como e onde os dados estão armazenados. (A) se somente a afirmativa I estiver correta. (B) se somente as afirmativas I e II estiverem corretas. (C) se somente as afirmativas I e III estiverem corretas. (D) se somente as afirmativas II e III estiverem corretas. (E) se todas as afirmativas estiverem corretas. A) I, II B) I, III C) I D) II E) II, III DETRAN_RN_ASSESSOR_TEC_INFO_BD_2010 DETRAN_RN_ASSESSOR_TEC_INFO_BD_2010 13- Sobre o comando “drop table pedido;” assinale a alternativa correta: 14- Assinale a alternativa que corresponde à funcionalidade da seguinte sintaxe: SELECT * FROM tabela ; A) Cria a tabela pedido. B) Elimina a tabela pedido. C) Duplica a tabela pedido. D) Cria uma chave primária na tabela pedido. E) Extrai dados da tabela pedido. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 A) Selecionar apenas a primeira coluna da tabela. B) Inserir o símbolo asterisco na tabela. C) Selecionar todas as colunas da tabela. D) Inserir a coluna asterisco na tabela. E) Apagar todas as colunas da tabela. 33 MANUEL CURSO GABARITO DETRAN_RN_ASSESSOR_TEC_INFO_BD_2010 DETRAN_RN_ASSESSOR_TEC_INFO_BD_2010 15- Marque a opção correta sobre a aplicação do comando que se segue, no diagrama exposto: Diagrama SELECT Numero_Pedido, Codigo_Produto, Item_de_Pedido WHERE Quantidade = 35; Quantidade FROM A) Lista o número, o código, a quantidade e os itens do pedido número 35. B) Lista o número, o código e a quantidade de pedidos, exceto os que têm quantidade de itens menor que 35. C) Lista o número, o código e os itens dos pedidos que tenham quantidade igual a 35 itens. D) Lista o número, o código e a quantidade de todos os pedidos que possuam quantidade de itens igual a 35. E) Lista o número, o código e a quantidade de todos os pedidos que não possuam quantidade de itens igual a 35. SELECT Numero_Pedido, Codigo_Produto, Quantidade FROM Item_de_Pedido WHERE Quantidade = 35; DETRAN_RN_ASSESSOR_TEC_INFO_BD_2010 ICMS-RJ - 2011 16- Para um conjunto de relacionamentos R binário entre os conjuntos de entidades A e B, o mapeamento das cardinalidades deve seguir, EXCETO: 17- Para que um sistema de informação possa ser útil e confiável, deve ser fundamentado na modelagem de dados, para posterior análise do processo. A modelagem de dados se baseia nos seguintes elementos: A) Um para um. B) Um para muitos. C) Um para ele mesmo. D) Muitos para muitos. E) Muitos para um. (A) fluxos de dados, atributos e requisitos. (B) fluxos de dados, diagramas e requisitos. (C) classes de dados, métodos e componentes. (D) objetos de dados, diagramas e componentes. (E) objetos de dados, atributos e relacionamentos. Um para ele mesmo ⇒ UNÁRIO AL_MA_TGA_ANALISTA_SISTEMAS_2013 AL_MA_TGA_ANALISTA_SISTEMAS_2013 18- Sobre sistemas de gerenciamento de bancos de dados, assinale a afirmativa incorreta. Sobre sistemas de gerenciamento de bancos de dados, assinale a afirmativa incorreta. (D) Uma Visão (View) de um banco de dados contém todas as informações sobre as entidades, atributos e tabelas. Seu objetivo é padronizar e unificar os termos utilizados nas variáveis utilizadas nos banco de dados. (E) O "varchar" é uma cadeia de caracteres de tamanho indeterminado. Campos do tipo “varchar” podem ter qualquer tamanho, até um limite que varia de acordo com o SGBD. (A) Em uma tabela chamada Carro, com os atributos Modelo, Ano, Cor e Placa, o atributo mais apropriado para servir como chave primária é Placa. (B) O processo de aplicação de regras ao projeto de um banco de dados, com o intuito de permitir um acesso eficiente e armazenamento consistente dos dados, é denominado normalização do banco de dados, ou apenas normalização. (C) O modelo hierárquico de banco de dados é o mais apropriado para dados que são representados por um relacionamento pai‐filho, onde cada registro pai pode estar relacionado com vários registros filho. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 34 MANUEL CURSO GABARITO AL_MT_AN_B_DADOS_2013 AL_MT_AN_B_DADOS_2013 20- No diagrama ER estendido, uma entidade associativa é graficamente representada por: 19- O modelo de dados abstrato que descreve a estrutura de um banco de dados de forma independente de um SGBD chama-se modelo (A) lógico. (B) conceitual. (C) físico. (D) algorítmico. (E) funcional. O uso desta abstração é necessário QUANDO um RELACIONAMENTO deve ser representado como uma ENTIDADE no modelo conceitual AL_MT_AN_B_DADOS_2013 AL_MT_AN_B_DADOS_2013 22- Com relação às definições dos diferentes tipos de chaves em um projeto de Banco de Dados, analise as afirmativas a seguir. 21- Com relação às vantagens que podem ser destacadas ao ser usada a abordagem de SGBD centralizados, assinale V para a afirmativa verdadeira e F para a falsa. ( ) Controle de Redundância. ( ) Imposição de Restrições de Integridade. ( ) Utilização de Triggers e Stored Procedures. As afirmativas são, respectivamente, I. Em alguns casos, mais de uma coluna ou combinações de colunas podem servir para distinguir uma linha das demais. Se uma das colunas (ou combinação de colunas) é escolhida como chave primária, as demais são denominadas chaves estrangeiras. II. Uma chave estrangeira é uma coluna ou uma combinação de colunas cujos valores aparecem necessariamente na chave primária de uma tabela. A chave estrangeira é o mecanismo que permite a implementação de relacionamentos em um banco de dados relacional. III. Uma chave primária é uma coluna ou uma combinação de colunas cujos valores não distinguem uma linha das demais dentro de uma tabela. (A) V, V e V. (B) V, F e V. (C) V, F e F. (D) F, V e F. (E) F, F e F. AL_MT_AN_B_DADOS_2013 AL_MT_AN_B_DADOS_2013 Assinale: (A) se somente a afirmativa I estiver correta. (B) se somente a afirmativa II estiver correta. (C) se somente a afirmativa III estiver correta. (D) se somente as afirmativas I e II estiverem corretas. (E) se todas as afirmativas estiverem corretas. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 23- Analise o comando SQL a seguir. SELECT * FROM pessoa Para recuperar todos os registros da tabela pessoa, cujo campo sobrenome começa com a letra B, deverá ser acrescentado ao final do comando (A) WHERE sobrenome IS 'B*' (B) WHERE sobrenome = 'B' (C) WHERE sobrenome[1] = 'B' (D) WHERE sobrenome EQUALS 'B*' (E) WHERE sobrenome LIKE 'B%' 35 MANUEL CURSO GABARITO MPE_MS_AN_BDADOS_2013 MPE_MS_AN_BDADOS_2013 25- Segundo o modelo de entidade e relacionamento, a cardinalidade mínima representa o número mínimo de ocorrências de uma entidade que estão relacionadas a uma ocorrência de outra entidade através de um relacionamento. Os valores das cardinalidades mínimas podem ser 24- Um modelo de dados é uma descrição formal das estruturas de dados presentes em um banco de dados. Os dois níveis de abstração dos modelos de dados considerados em um projeto de banco de dados são: (A) modelo conceitual e modelo lógico. (B) modelo lógico e modelo físico. (C) modelo conceitual e modelo físico. (D) modelo de classes e modelo de entidades. (E) modelo de entidades e modelo de relacionamentos. (A) zero ou um. (B) zero ou n. (C) um ou n. (D) um número inteiro n menor que zero ou n. (E) um número inteiro n menor que zero ou zero. MPE_MS_AN_BDADOS_2013 MPE_MS_AN_BDADOS_2013 27- Com relação a banco de dados, uma transação T está em starvation quando 26- Com relação ao tema “modelo relacional”, analise as afirmativas a seguir. I. Chave estrangeira é o mecanismo que permite a implementação de relacionamentos em um banco de dados relacional. II. Chave estrangeira é uma coluna única ou combinação de colunas cujos valores necessariamente aparecem como chave primária em outra tabela. III. Chave candidata é uma coluna cujos valores necessariamente aparecem como chave secundária em tabelas que participam de auto‐relacionamentos. Assinale: (A) não pode continuar seu processamento por um período de tempo indefinido, enquanto outras transações continuam normalmente. (B) não pode continuar seu processamento por um período de tempo indefinido, enquanto outras transações também são impedidas de continuar seu processamento normalmente. (C) um recurso está indisponível e por esse motivo a transação será abruptamente finalizada. (D) pode continuar seu processamento por um período de tempo pré‐definido, enquanto outras transações são impedidas de continuar seu processamento normalmente. (E) pode continuar seu processamento por um período de tempo conhecido à priori pois T não tem permissão para acessar os recursos necessários. (A) se somente a afirmativa I estiver correta. (B) se somente a afirmativa II estiver correta. (C) se somente a afirmativa III estiver correta. (D) se somente as afirmativas I e II estiverem corretas. (E) se somente as afirmativas I e III estiverem corretas. MPE_MS_AN_ENG_COMP_2013 MPE_MS_AN_ENG_COMP_2013 28- Os sistemas gerenciadores de bancos de dados relacionais adotam uma arquitetura que envolve diversos esquemas com o objetivo de separar o usuário da aplicação do banco de dados físico. A esse respeito, é correto afirmar que esses esquemas são 29- A modelagem conceitual de dados é uma fase muito importante para o desenvolvimento de aplicações que utilizem bancos de dados. A modelagem utiliza entidades, relacionamentos e atributos. O grau de um relacionamento indica o número de (A) externo, pré‐compilador e compilador SQL. (B) independência física de dados e independência de dados lógica. (C) interface, conceitual e visão. (D) interno, conceitual e externo. (E) visão, compilador SQL e utilitários. (A) atributos participantes. (B) auto‐relacionamentos participantes. (C) entidades fracas participantes. (D) entidades participantes. (E) relacionamentos participantes. ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 36 MANUEL CURSO GABARITO MPE_MS_AN_ENG_COMP_2013 MPE_MS_AN_ENG_COMP_2013 30- O conceito de transação é fundamental em bancos de dados relacionais. Uma transação (T) é uma atividade de processamento que ou estará completamente realizada ou não foi realizada. Uma transação deve obedecer a diversas propriedades. A propriedade durabilidade garante que T (C) preservará a consistência dos dados, se sua execução for completada corretamente, levando o banco de dados de um estado durável para outro. (D) será recuperada caso ocorra uma falha no sistema. As mudanças serão desfeitas em decorrência da falha e o banco continuará integro. (E) terá suas alterações persistidas no banco de dados por uma transação efetivada. As alterações dos dados não devem ser perdidas em razões de uma falha. (A) deve ser executada de modo isolado das demais transações. O processamento de T não pode sofrer interferência de qualquer outra transação. (B) é uma unidade indivisível de processamento que será executada na sua totalidade ou não será executada de nenhuma outra forma. PERSISTIDAS ⇒ gravadas em um meio DURÁVEL MPE_MS_AN_SISTEMAS_2013 MPE_MS_AN_SISTEMAS_2013 31- Com relação ao tema “Sistemas gerenciadores de bancos de dados”, analise as afirmativas a seguir. I. Cabe ao administrador de banco de dados de uma organização definir e modificar esquemas por meio da execução de instruções de definição de dados, conceder diferentes tipos de autorização para acesso a dados e manter rotinas que têm por objetivo garantir a integridade do sistema. II. Cabe ao administrador de banco de dados de uma organização escolher, dentre as diversas ferramentas disponíveis no mercado, as mais adequadas e desenvolver aplicações que utilizem o sistema gerenciador de bancos de dados e que ofereçam interfaces amigáveis para os usuários finais. III. Cabe ao administrador de banco de dados de uma organização acessar o banco de dados e monitorar as tarefas que estão sendo executadas pelos usuários e garantir que o desempenho do sistema não seja prejudicado por elas. Assinale: (A) se somente a afirmativa I estiver correta. (B) se somente a afirmativa II estiver correta. (C) se somente a afirmativa III estiver correta. (D) se somente as afirmativas II e III estiverem corretas. (E) se somente as afirmativas I e III estiverem corretas. MPE_MS_TEC_INFO_2013 32- Observe o comando SQL a seguir: SELECT nome, sobrenome, PIS, anos_de_servico FROM Empregados A cláusula que deve ser adicionada ao comando acima para ordenar os registros por anos de serviço, com os empregados que estão há mais tempo na empresa aparecendo primeiro na listagem, é DPERJ_ADM_DADOS_2014 33- O controle de concorrência para transações de banco de dados que garante que resultados intermediários de uma transação T não afetem outras transações até que T tenha sido totalmente executada, ou rejeitada, é usualmente implementado em bancos de dados por meio de (A) arquivos de log. (B) bloqueio (lock e unlock). (C) check points. (D) replicação. (E) two-phase commitment. (A) ORDER 'anos_de_servico' BY ASC (B) ORDER BY 'anos_de_servico' (C) ORDER BY anos_de_servico DESC (D) SORTED BY anos_de_servico DESC (E) ORDER BY anos_de_servico ASC ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 37 MANUEL CURSO GABARITO DPERJ_ADM_DADOS_2014 TJ_BA_AN_TI_2015 34- A sigla DBA é usualmente empregada para designar um profissional que é responsável (A) pela administração, instalação, configuração e monitoramento de instalações de bancos de dados. (B) pela concepção, desenvolvimento e implantação de sistemas gerenciadores de bancos de dados. (C) pelo processo de coleta e exploração de dados para geração de novos conhecimentos. (D) pelo teste e manutenção de sistemas WEB construídos sob a égide de metodologias ágeis. (E) pelo treinamento e certificação para utilização de gerenciadores de bancos de dados. 35- As técnicas de projeto de bancos de dados visam à obtenção de três objetivos principais, quais sejam: (A) normalização, preservação das dependências funcionais e decomposição sem perda; (B) normalização, independência de dados e decomposição sem perda; (C) normalização, independência de dados e controle de concorrência; (D) atomicidade, consistência e durabilidade; (E) independência de dados, controle de concorrência e normalização DEPENDÊNCIA FUNCIONAL - EXEMPLO DEPENDÊNCIA FUNCIONAL Dados dois conjuntos de atributos A e B de uma entidade, dizse que: • B é funcionalmente dependente de A ou • A determina B ou • B depende de A, se a cada valor de A estiver associado a um, e só um, valor de B. N_funcionário Nome Apelido Departamento 1021 Sofia Reis 900 1022 Afonso Reis 700 1023 António Cardoso 900 Departamento → N_funcionário ? NÃO pois Departamento 900 ⇒ {1021,1023} !!!! Uma DEPENDÊNCIA FUNCIONAL é representada por: A→B A é denominado DETERMINANTE N_funcionário → Departamento ? SIM pois se se conhecer o N_funcionário (atributo unívoco) é possível determinar o Departamento (um funcionário só pode pertencer a um departamento) !!!! GABARITO 01- E 02- B 03- A 04- B 05- A 06- A 07- A 08- D 09- D 10- C 11- E 12- A 13- B 14- C 15- D 16- C 17- E 18- D 19- B 20- D 21- A 22- B 23- E 24- A 25- A 26- D 27- A 28- D 29- D 30- E 31- E 32- C 33- B 34- A 35- A ISS/NITERÓI-2015 INFORMÁTICA - EXERCÍCIO_04 38 MANUEL