Banco de Dados Aula 01 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br
Na aula passada vimos...
Na aula passada vimos... - Apresentação da disciplina; - Informações sobre as aulas e avaliações;
Na aula de hoje veremos...
Na aula de hoje veremos... Unidade I - Arquitetura Cliente-Servidor; - Introdução a Banco de Dados; - Dados e Gerenciamento de Banco de Dados; - O ciclo de vida do Banco de Dados; - Modelagem de Dados Conceitual.
Arquitetura Cliente-Servidor
Arquitetura Cliente-Servidor A arquitetura cliente-servidor foi desenvolvida para dividir ambientes de computação onde um grande número de PCs, servidores de arquivos, impressoras, servidores de banco de dados e outros equipamentos são conectados juntos por uma rede. A ideia é definir servidores especializados, tais como servidores de arquivos, que mantém os arquivos de máquinas clientes, ou servidores de impressão que podem estar conectados a várias impressoras; assim, quando se desejar imprimir algo, todas as requisições de impressão são enviadas a este servidor.
Arquitetura Cliente-Servidor As máquinas clientes disponibilizam para o usuário as interfaces apropriadas para utilizar esses servidores, bem como poder de processamento para executar aplicações locais. Esta arquitetura se tornou muito popular por algumas razões: - A facilidade de implementação dada a clara separação das funcionalidades e dos servidores; - Um servidor é inteligentemente utilizado porque as tarefas mais simples são delegadas às máquinas clientes mais baratas. - O usuário pode executar uma interface gráfica que lhe é familiar, ao invés de usar a interface do servidor.
Arquitetura Cliente-Servidor Desta maneira, a arquitetura cliente-servidor foi incorporada aos SGBDs comerciais. Diferentes técnicas foram propostas para se implementar esta arquitetura, sendo que a mais adotada pelos Sistemas Gerenciadores de Banco de Dados Relacionais (SGBDRs) comerciais é a inclusão da funcionalidade de um SGBD centralizado no lado do servidor. As consultas e a funcionalidade transacional permanecem no servidor, sendo que este é chamado de servidor de consulta ou servidor de transação. É assim que um servidor SQL é fornecido aos clientes.
Arquitetura Cliente-Servidor Cada cliente tem que formular suas consultas SQL, prover a interface do usuário e as funções de interface usando uma linguagem de programação. O cliente pode também se referir a um dicionário de dados o qual inclui informações sobre a distribuição dos dados em vários servidores SQL, bem como os módulos para decomposição de uma consulta global em um número de consultas locais que podem ser executadas em vários locais. Comumente o servidor SQL também é chamado de back-end machine e o cliente front-end machine.
Arquitetura Cliente-Servidor Na arquitetura cliente-servidor, o cliente (front-end) executa as tarefas do aplicativo, ou seja, fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back-end) executa as consultas no SGBD e retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software que possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens de consulta (stored procedures) e gatilhos (triggers). A principal vantagem desta arquitetura é a divisão do processamento entre dois sistemas, o que reduz o tráfego de dados na rede.
Arquitetura Cliente-Servidor
Introdução a Banco de Dados
Introdução a Banco de Dados O que é um banco de dados?
Introdução a Banco de Dados O que é um banco de dados?
Introdução a Banco de Dados O que é um banco de dados?
Introdução a Banco de Dados O que são dados?
Introdução a Banco de Dados O que são dados?
Introdução a Banco de Dados O que são dados?
Introdução a Banco de Dados O que são dados? Dados são um conjunto de valores ou ocorrências em um estado bruto com o qual são obtidas informações com o objetivo de adquirir benefícios.
Introdução a Banco de Dados O que são dados? Existem dois tipos de dados: - Estruturados: Dados formatados, organizados em tabelas, linhas e colunas, e são facilmente processados. Geralmente é utilizado um Sistema Gerenciador de Banco de Dados para armazenar este tipo de dado. - Não Estruturados: Não possuem uma formatação específica e são mais difíceis de serem processados; por exemplo mensagens em redes sociais.
Introdução a Banco de Dados O que são dados?
Introdução a Banco de Dados O que é informação?
Introdução a Banco de Dados O que é informação? É a resultante do processamento, manipulação e organização de dados, de tal forma que represente uma modificação (quantitativa e qualitativa) no conhecimento do sistema que a recebe.
Introdução a Banco de Dados O que é informação? É a resultante do processamento, manipulação e organização de dados, de tal forma que represente uma modificação (quantitativa e qualitativa) no conhecimento do sistema que a recebe. BENEFÍCIOS!
Introdução a Banco de Dados O que é informação? BENEFÍCIOS!
Introdução a Banco de Dados O que é informação? BENEFÍCIOS!
Introdução a Banco de Dados O que é Banco de Dados? BENEFÍCIOS!
Introdução a Banco de Dados O que é Banco de Dados? Um banco de dados (BD ou DB - Database) é um conjunto de softwares que permitem criar e manter entidades possibilitando armazenar dados de maneira estruturada e com a menor redundância possível. BENEFÍCIOS!
Introdução a Banco de Dados O que é Banco de Dados? Um banco de dados (BD ou DB - Database) é um conjunto de softwares que permitem criar e manter entidades possibilitando armazenar dados de maneira estruturada e com a menor redundância possível. OBS: Podemos entender "banco de dados" de duas formas: 1º - O conjunto de softwares que gerenciam o 'serviço' de banco de dados. BENEFÍCIOS! 2º - A entidade criada para armazenar dados.
Introdução a Banco de Dados Exemplo 1: "Você instalou o banco de dados?" - Referente ao conjunto de softwares que permitem criar e manter entidades. Exemplo 2: "Crie um banco de dados chamado 'financeiro'" BENEFÍCIOS! - Referente a criação da entidade dentro do serviço de banco de dados.
Dados e Gerenciamento de Banco de Dados
Dados e Gerenciamento de Banco de Dados Em muitos sistemas informatizados é necessário armazenar dados em bancos de dados. Podemos constatar isso observando que nas últimas décadas o banco de dados se tornou o coração de muitos sistemas. Para facilitar a utilização dos bancos de dados foram criados os SGBDs - Sistemas Gerenciadores de Banco de Dados.
Dados e Gerenciamento de Banco de Dados A informação é muitas vezes a coisa mais valiosa das empresas. Mantê-las e poder acessá-las sempre que necessário é primordial para tomar decisões importantes. Mas controlar o acesso a essas informações também é importantíssimo. Já pensou se estas informações caíssem em mãos erradas? E a perda de informações? Já imaginou se estragasse o HD do servidor onde está o banco de dados? Backup é uma forma de garantir que informações não serão perdidas.
Dados e Gerenciamento de Banco de Dados Enfim, já deu pra perceber que a gerência de um banco de dados não é uma coisa a se deixar de lado, pois uma empresa pode depender dele, ou seja, pode ajudar a empresa a ter sucesso, mas também pode levá-la ao fracasso. Para garantir a consistência dos dados, controlar o acesso, manter os dados seguros, fornecer meios de acesso aos dados,... foram criados os Sistemas de Gerenciamento de Bancos de Dados (DBMS - Database Management System).
Dados e Gerenciamento de Banco de Dados Um Sistema de Gerenciamento de Banco de Dados (SGBD) é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma ou mais bases de dados. Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, a manipulação e a organização dos dados.
Dados e Gerenciamento de Banco de Dados O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. Em bancos de dados relacionais, a interface é constituída pelas APIs (Applications Programming Interfaces) ou drivers do SGBD, que executam comandos na linguagem SQL (Structured Query Language) - Linguagem de Consulta Estruturada.
Dados e Gerenciamento de Banco de Dados
Dados e Gerenciamento de Banco de Dados Tudo o que fazemos em um banco de dados passa pelo SGBD! o SGBD é o responsável por tudo: salvar os dados no HD, manter em memória os dados mais acessados, ligar dados e metadados, disponibilizar uma interface para programas e usuários externos acessarem o banco de dados (para banco de dados relacionais, é utilizada a linguagem SQL), encriptar dados, controlar o acesso a informações, manter cópias dos dados para recuperação de uma possível falha, garantir transações no banco de dados, enfim, sem o SGBD o banco de dados não funcionaria tão facilmente.
Dados e Gerenciamento de Banco de Dados É comum as pessoas chamarem um SGBD de banco de dados, por exemplo: Banco de Dados Oracle; Banco de Dados MySQL; Banco de Dados PostgreSQL; Banco de Dados MS SQL Server; etc. Cada um implementa um banco de dados (ou vários) de uma maneira diferente, mas para o usuário isso é quase transparente, pois a linguagem de acesso aos dados é a mesma, o SQL.
O ciclo de vida do Banco de Dados
O ciclo de vida do Banco de Dados O ciclo de vida de um banco de dados incorpora os passos básicos envolvidos na concepção de um esquema global de um banco de dados lógico, alocando dados através de uma rede de computadores, e defininco um esquema local para um SGBD específico. Uma vez que o projeto esteja completo, o ciclo de vida continua com a implementação e manutenção do banco de dados.
O ciclo de vida do Banco de Dados Monitoramento e Manutenção Análise de Requisitos Projeto Lógico Ciclo de Vida de um Banco de Dados Implementação Projeto Físico
O ciclo de vida do Banco de Dados Análise de Requisitos: Os requisitos de um banco de dados são determinados por meio de entrevistas de produtores e usuários dos dados, usando as informações para produzir uma especificação formal de requisitos. Essa especificação inclui os dados necessários para o processamento, os relacionamentos de dados naturais, e da plataforma de software para a implementação do banco de dados.
O ciclo de vida do Banco de Dados Projeto Lógico: Geração de um diagrama de modelo conceitual de dados que mostra todos os dados e seus relacionamentos, é d e s e n v o l v i d o u s a n d o t é c n i c a s c o m o e n t i d a d e - relacionamento (ER) ou UML. A construção do modelo de dados deve ser, no final, transformado em tabelas.
O ciclo de vida do Banco de Dados Projeto Lógico: a) Modelagem Conceitual de dados:
O ciclo de vida do Banco de Dados Projeto Lógico: a) Modelagem Conceitual de dados: Os requisitos de dados são analisados e modelados usando um ER ou diagrama UML que inclui muitas características, por exemplo, a semântica para relacionamentos opcionais, relacionamentos ternários, supertipos e subtipos (categorias). Requisitos de processamento normalmente não especificados usando expressões de linguagem natural ou comandos SQL.
O ciclo de vida do Banco de Dados Projeto Lógico: b) Visão Integrada:
O ciclo de vida do Banco de Dados Projeto Lógico: b) Visão Integrada: Normalmente quando o projeto é grande e mais de uma pessoa está envolvida na análise de requisitos, múltiplas visões de dados e relacionamentos ocorrem, resultando em inconsistências devido à variação de taxonomia, a percepção de contexto. Para eliminar redundância e inconsistência do modelo, essas visões devem ser raconalizadas e consolidadas em uma única visão global. A visão integrada requer o uso de ferramentas semânticas ER, como identificação de sinônimos, agregação e generalização. Visão integrada também é importante quando as aplicações tem que ser integradas, e cada pode ser escrita com sua própria visão de banco de dados.
O ciclo de vida do Banco de Dados Projeto Lógico: C) Transformação do modelo conceitual de dados para tabelas SQL:
O ciclo de vida do Banco de Dados Projeto Lógico: C) Transformação do modelo conceitual de dados para tabelas SQL: Baseado na categorização da construção do modelo de dados e um conjunto de regras de mapeamento, cada relacionamento e suas entidades associadas são transformados em um conjunto de tabelas relacionais candidatas de um SGBD específico. Tabelas redundantes são eliminadas como parte desse processo.
O ciclo de vida do Banco de Dados Projeto Lógico: d) Normalização de tabelas:
O ciclo de vida do Banco de Dados Projeto Lógico: d) Normalização de tabelas: Dada uma tabela (R), um conjunto de atributos (B) é funcionalmente dependente de outro conjunto de atributos (A) se, em cada instante de tempo, cada valor de A é associado com exatamente um valor de B. Dependências funcionais são derivadas do diagrama conceitual do modelo de dados e da semântica dos relacionamentos de dados na análise de requisitos. Eles representam as dependências entre os elementos de dados que são identificados únicos (chaves) de entidades.
O ciclo de vida do Banco de Dados Projeto Lógico: d) Normalização de tabelas: Dependências funcionais adicionais, que representam as dependências entre chave e atributos não chave com entidades, podem ser derivados a partir da especificação de requisitos. Tabelas relacionais candidatas associadas com todas as dependências funcionais são normalizadas (modificadas por decomposição ou divisão de tabelas em tabelas menores) usando técnicas padrão de normalização.
O ciclo de vida do Banco de Dados Projeto Lógico: d) Normalização de tabelas: Finalmente, redundâncias de dados que ocorrem nas tabelas candidatas normalizadas são analisadas para mais eliminações possíveis, com a restrição que a integridade de dados deve ser preservada.
O ciclo de vida do Banco de Dados Projeto Físico: Envolve a seleção de índices (métodos de acesso), particionamento e agrupamento de dados. A proposta do projeto físico é para otimizar o desempenho. Como parte do projeto físico, o esquema global pode as vezes ser refinado de forma limitada para refletir o processamento (consultas e transações) de requisitos se houverem obviamente grandes ganhos para ser feito com eficiência. Isto é chamado de desnormalização.
O ciclo de vida do Banco de Dados Implementação:
O ciclo de vida do Banco de Dados Implementação: Uma vez que o projeto esteja concluído, o banco de dados pode ser criado através da implementação do esquema formal, usando a linguagem de definição de dados (DDL - Data Definition Language) de um SGBD. Então a linguagem de manipulação de dados (DML - Data Manipulation Language) pode ser utilizada para consultas e atualizações no banco de dados, assim como a criação de índices e estabelecer restrições, como integridade referencial. A linguagem SQL contém ambas construções DDL e DML; por exemplo o create table representa DDL, e o comando select representa DML.
O ciclo de vida do Banco de Dados Monitoramento e Manutenção:
O ciclo de vida do Banco de Dados Monitoramento e Manutenção: Á medida que a base de dados começa a monitorar operações, indica se os requisitos de desempenho estão sendo satisfeitos. Se elas não estiverem sendo satisfeitas, modificações deverão ser feitas para melhorar o desempenho. Outras modificações podem ser necessárias quando os requisitos mudam ou as expectativas do usuário final aumentam com o bom desempenho. Desta maneira, o ciclo de vida continua com monitoramento, reprojeto, e modificações.
Modelagem de Dados Conceitual
Modelagem de Dados Conceitual A modelagem conceitual de dados é o componente inicial de um projeto lógico de banco de dados. Diagramas de esquemas foram formalizados em 1960 por Charles Bachman. Ele usou retângulos para indicar tipos de registros e setas dirigidas a partir de um registro para outro para indicar um relacionamento um-para-muitos entre os casos de registros dos dois tipos. A entidade-reacionamento (ER) aborda a modelagem conceitual de dados. A forma de Peter Chen (1976) de representar modelos ER utiliza retângulos para especificar entidades, que são de forma análoga aos registros.
Modelagem de Dados Conceitual Também usa losango para representar os vários tipos de relacionamentos, que são diferenciados por números ou letras colocados nas linhas de conexão dos losangos para os retângulos. A linguagem de modelagem unificada (UML - United Modeling Language) foi introduzida em 1997 por Grady Booch e James Rombaugh e tornou-se uma linguagem gráfica padrão para especificar e documentar sistemas de software em larga escala. O componente de modelagem de dados de UML (agora UML-2) tem muita similaridade com o modelo ER.
Modelagem de Dados Conceitual Na modelagem conceitual de dados, a ênfase principal é a simplicidade e legibilidade. A meta do projeto do esquema conceitual, onde as abordagens ER e UML são muito úteis, é capturar os requisitos de dados do mundo real de uma maneira simples e significativa que seja compreensível tanto para banco de dados como para usuário final. O usuário final é a pessoa responsável por acessar o banco de dados e executar consultas e atualizações através do uso de um software SGBD, e, portanto, tem interesse no processo de projeto do banco de dados.
Banco de Dados Aula 01 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br
Exercícios 1) O que é um sistema de gerenciamento de banco de dados relacional? 2) Quais as cinco etapas do ciclo de vida de um banco de dados? 3) Quais são as fases do projeto lógico? 4) Qual a diferença entre linguagens DDL e DML? 5) Qual o objetivo da modelagem conceitual de dados?