FACULDADE DO LITORAL SUL PAULISTA FALS JÉSSICA MACARIO DE OLIVEIRA SISTEMA GERENCIADOR DE BANCO DE DADOS



Documentos relacionados
BANCO DE DADOS II. AULA MySQL.

Banco de Dados. Prof. Antonio

O que são Bancos de Dados?

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Sistemas de Banco de Dados

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Conceitos de Banco de Dados

Banco de Dados I Introdução

Prof. Marcelo Machado Cunha

Prof.: Clayton Maciel Costa

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Noções de. Microsoft SQL Server. Microsoft SQL Server

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

SQL Structured Query Language

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Disciplina de Banco de Dados Introdução

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

Introdução Banco de Dados

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Faculdade Lourenço Filho - ENADE

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

INTRODUÇÃO. Diferente de Bando de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Módulo 4: Gerenciamento de Dados

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

FACULDADE DO LITORAL SUL PAULISTA FALS JEAN CARLOS RAMOS LOPES SISTEMA DE GERENCIAMENTO DE VENDA LINGUAGEM DE PROGRAMAÇÃO

Introdução ao SQL. O que é SQL?

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Banco de Dados. Definição

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Disciplina: Unidade V: Prof.: Período:

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

SISTEMA GERENCIADOR DE BANCO DE DADOS

Softwares Aplicativos Banco de Dados

Persistência e Banco de Dados em Jogos Digitais

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Principais Comandos SQL Usados no MySql

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Administração de Banco de Dados

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Banco de Dados. Maurício Edgar Stivanello

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

LINGUAGEM DE BANCO DE DADOS

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

Transações Seguras em Bancos de Dados (MySQL)

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

SGBD ITB 1.INTRODUÇÃO 1.INTRODUÇÃO Conceito SGBD: Sistema gerenciador de banco de dados Constituição SGBD

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS.

Exercícios de Lógica Exercícios de Fixação 08

Objetivos Específico

Engenharia de Software III

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Banco de Dados. Profª. Ana Leda

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

ISO/IEC 12207: Gerência de Configuração

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Especificação do 3º Trabalho

Disciplina: Tecnologias de Banco de Dados para SI s

Disciplina de Banco de Dados Parte V

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

Gestão de Tecnologia da Informação

Orientação a Objetos

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Microsoft Access XP Módulo Um

Tarefa Orientada 16 Vistas

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO

InfoMix Tecnologia. Soluções em Tecnologia da Informação. SYSFARM Sistema de Gerenciamento de Farmácias. Documento Requisitos Versão 1.

Transcrição:

FACULDADE DO LITORAL SUL PAULISTA FALS JÉSSICA MACARIO DE OLIVEIRA SISTEMA GERENCIADOR DE BANCO DE DADOS ESTUDO DE CASO: SISTEMA DE GERENCIAMENTO DE VENDAS PRAIA GRANDE 2010

JÉSSICA MACARIO DE OLIVEIRA SISTEMA GERENCIADOR DE BANCO DE DADOS ESTUDO DE CASO: SISTEMA DE GERENCIAMENTO DE VENDAS Trabalho de conclusão de curso, Faculdade do Litoral Sul Paulista, sob orientação do Prof. Paulo R. T. Cândido. PRAIA GRANDE 2010

JÉSSICA MACARIO DE OLIVEIRA SISTEMA GERENCIADOR DE BANCO DE DADOS ESTUDO DE CASO: SISTEMA DE GERENCIAMENTO DE VENDAS Trabalho de conclusão de curso, Faculdade do Litoral Sul Paulista, sob orientação do Prof. Paulo R. T. Cândido. AVALIAÇÃO: NOTA: ( ) Praia Grande, 24 de abril de 2010.

RESUMO Nos dias de hoje é impossível que uma empresa, mesmo sendo de pequeno porte, mantenha seus processos organizados de maneira simples e objetiva onde as informações sejam encontradas de forma ágil sem um sistema informatizado. Os sistemas informatizados vêm para ajudar as empresas a melhorar todos os processos desde um simples cadastro de clientes às tomadas de decisões importantes para o crescimento da empresa O sistema informatizado por sua vez lidará com inúmeras informações que terão que ser armazenadas, porém o papel tem problemas ao nível da persistência (tempo e tipo de visualização) e da recuperação (validação e verificação), ou seja, dura pouco. Por este motivo torna-se mais fácil e seguro encontrar a informação numa base de dados, para que sua empresa garanta um controle efetivo sobre todo o seu negócio, tem obrigatoriamente de recorrer a sistemas de gestão de bases de dados. PALAVRAS CHAVES: system, data, database, SGBD.

ABSTRACT Nowadays it is impossible for a company, even though small size, keep its processes organized in a simple and objective where the information is found in a flexible system without a computerized. Computerised systems have come to help companies improve all processes from a single client record to making decisions important to the company's growth. The computerized system in turn will deal with numerous things that have to be stored, but the paper has problems in the persistence (time and display type) and recovery (validation and checking), or short-lived. Therefore it becomes easier and find information in a secure database for your company ensure effective control over your entire business hás required to use systems management databases. KEYWORDS TOOL: stamps, financial, business, improvement, assist.

SUMÁRIO 1 INTRODUÇÃO... 8 2 JUSTIFICATIVA... 9 3 OBJETIVO... 10 4 SGBD... 11 4.1 FUNÇÕES PRINCIPAIS DE UM SGBD... 11 5 LINGUAGEM SQL... 12 5.1 DML LINGUAGEM DE MANIPULAÇÃO DE DADOS... 12 5.2 DDL LINGUAGEM DE DEFINIÇÃO DE DADOS... 12 5.3 DCL LINGUAGEM DE CONTROLE DE DADOS... 13 5.4 DTL LINGUAGEM DE TRANSAÇÃO DE DADOS... 13 5.5 DQL LINGUAGEM DE CONSULTA DE DADOS... 13 6 DICIONÁRIO DE DADOS... 14 7 BANCO DE DADOS... 15 7.1 DEFINIÇÃO... 15 7.2 BANCO DE DADOS RELACIONAL... 15 7.3 AS 12 REGRAS DE UM BANCO DE DADOS RELACIONAL... 16 7.4 VANTAGENS DE UM BOM PROJETO DE BANCO DE DADOS... 17 8 MODELO RELACIONAL... 17 8.1 PRINCIPAIS COMPONENTES... 18 8.1.1 Tabelas... 18 8.1.2 Registros... 18 8.1.3 Colunas... 18 8.1.4 Chave... 18 9 O QUE É O MODELO DE ENTIDADE E RELACIONAMENTO (MER)... 19 10 MYSQL... 20 10.1 DEFINIÇÃO... 20 10.2 HISTÓRIA DO MYSQL... 20 10.3 NOME E MASCOTE... 20 10.4 CARACTERÍSTICAS DO MYSQL... 21 10.5 CARACTERÍSTICAS DO SERVIDOR MYSQL... 21 11 APLICATIVOS UTILIZADOS PARA A MANUTENÇÃO DA BASE DE DADOS... 23 11.1 MYSQL ENTERPRISE SERVER 5.1... 23 11.2 MYSQL ENTERPRISE MONITOR... 23 11.3 MYSQL QUERY ANALYZER... 25 11.4 MYSQL CLUSTER... 25 12 ESTUDO DE CASO... 26 12.1 REQUISITOS DO CLIENTE... 26 12.2 CARACTERISTICAS DO SISTEMA... 28 12.3 MODELO DA BASE DE DADOS... 29 12.4 IMAGENS DO SISTEMA... 30 13 CONSIDERAÇÕES FINAIS... 34

ÍNDICE DE ILUSTRAÇÕES FIGURA 1 - MYSQL ENTREPRISE MONITOR... 24 FIGURA 2 - MYSQL ENTERPRISE EVENTS... 24 FIGURA 3 - MYSQL QUERY ANALIZER... 25 FIGURA 4 - MODELO DA BASE DE DADOS DO SISTEMA... 29 FIGURA 5 - LOGIN DO SISTEMA... 30 FIGURA 6 - CONSULTA DE CLIENTES... 30 FIGURA 7 - LISTAGEM DE CLIENTES... 31 FIGURA 8 - CONSULTA DE VENDAS... 31 FIGURA 9 - CADASTRO DE CLIENTES... 32 FIGURA 10 - RELATÓRIO DE VENDAS... 32 FIGURA 11 - LISTAGEM DE ORDENS DE SERVIÇO... 33

1 INTRODUÇÃO Este trabalho visa mostrar a importância de um Sistema Gerenciador de banco de dados para uma empresa que deseja crescer no mercado e acompanhar o desenvolvimento tecnológico. Para este fim existem vários tipos de SGBD que são escolhidos de acordo com a necessidade do cliente. Os sistemas gerenciadores de banco de dados vieram com o intuito de suprir a necessidade de armazenamento e disponibilidade de informações de modo rápido e seguro, fornecendo assim para as empresas um controle maior de suas informações, desde que estas estejam bem estruturadas numa base de dados. Para um melhor entendimento do assunto abordado, foi escolhido um único tipo de SGBD o MySQL. Serão apresentados conceitos técnicos, características, ferramentas utilizadas para manutenção e implementação da base de dados. Será exemplificada a utilização do MYSQL através de um estudo de caso, que abordará a realidade de uma empresa de comercialização de carimbos que viu a necessidade de expandir seu negócio e para isso decidiu investir em um sistema WEB de um e-commerce e um sistema de gerenciamento interno.

2 JUSTIFICATIVA O avanço tecnológico não cessa por isto os administradores empresas, cada vez mais, estão vendo a necessidade de adaptar-se a este crescimento. E a primeira medida a ser tomada para este fim e a eliminação de processos em papel e a adesão a sistemas informatizados que ajudam nas tarefas rotineiras e proporcionam uma maior produtividade no ambiente de trabalho. Portanto, mesmo em pequenas empresas observa-se a necessidade de informatização nos processos, para que esta consiga se firmar no mercado e eliminar concorrentes. Sendo assim com a implantação de sistemas informatizados vem à necessidade de controle dos dados manipulados por esses sistemas e para que este controle seja feito de forma satisfatória é necessária a utilização de um SGBD (Sistema Gerenciador de Banco de Dados).

3 OBJETIVO Definir os conceitos relacionados a um SGBD, linguagem SQL, modelos relacionais para demonstrar os benefícios gerados pelo uso do mesmo para armazenamento, recuperação e controle de dados de qualquer empresa, independentemente de seu porte ou mercado de atuação. Apresentar aplicações que auxiliam na manutenção de um SGBD MYSQL, para que os adiministrador tenham uma visão melhor em questões de performance e identificação de diversos problemas. Demonstrar a importância de uma modelagem de dados bem definida para suprir a necessidade de integridade dos dados e melhorar a performance na recuperação dos dados, pois as empresas além de segurança exigem rapidez na recuperação das informações. Demostrar a necessidade das organizações atuais pela informação informatizada, as vantagens da eliminação da utilização dos processos em papel tais como: divergencia de informações, burocratização excessiva, lentidaão nos processos, perda de informações importantes, entre outras.

4 SGBD Um Sistema Gerencidador de Base de Dados (SGBD) é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma base de dados, ou seja, consiste em uma coleção de dados inter-relacionados e uma coleção de programas para prover o acesso a esses dados. O objetivo principal de um SGBD é prover um ambiente que seja adequado e eficiente para uso na recuperação e armazenamento de informações. O SGBD implica a criação e manutenção de bases de dados, elimina a necessidade de especificação de definição de dados, age como interface entre os programas de aplicação e os ficheiros de dados físicos e separa as visões lógica e de concepção dos dados. O SGBD pode ser dividido em três componentes principais: Linguagem de definição de dados (especifica conteúdos, estrutura a base de dados e define os elementos de dados); Linguagem de manipulação de dados (para poder alterar os dados na base); Dicionário de dados Exemplos de SGBD: SQL Server, PostGre SQL, Oracle, MySql, DB2. 4.1 FUNÇÕES PRINCIPAIS DE UM SGBD Interação com o sistema de arquivos do sistema operacional. Cumprimento da integridade. Cumprimento da segurança. Cópias de segurança ( backup ) e recuperação. Controle de concorrência. Otimização e execução dos comandos DML. Dicionário de Dados. Desempenho

5 LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). A linguagem SQL é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem. Pode ser dividida em três partes: Linguagem de definição de dados (DDL); Linguagem de manipulação de dados (DML); Linguagem de controle de dados (DCL) ; 5.1 DML LINGUAGEM DE MANIPULAÇÃO DE DADOS A DML é um subconjunto da linguagem usada para inserir, atualizar e apagar dados. INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente. UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente. DELETE permite remover linhas existentes de uma tabela. 5.2 DDL LINGUAGEM DE DEFINIÇÃO DE DADOS Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL. Os comandos básicos da DDL são poucos CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados. DROP apaga um objeto do banco de dados.

Outros comandos DDL: ALTER TABLE CREATE INDEX ALTER INDEX DROP INDEX CREATE VIEW DROP VIEW 5.3 DCL LINGUAGEM DE CONTROLE DE DADOS DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. Duas palavras-chaves da DCL: GRANT - autoriza ao usuário executar ou setar operações. REVOKE - remove ou restringe a capacidade de um usuário de executar operações. Outros comandos DCL: ALTER PASSWORD CREATE SYNONYM 5.4 DTL LINGUAGEM DE TRANSAÇÃO DE DADOS BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não. COMMIT envia todos os dados das mudanças permanentemente. ROLLBACK faz com que as mudanças nos dados existentes desde o último COMMIT ou ROLLBACK sejam descartadas. 5.5 DQL LINGUAGEM DE CONSULTA DE DADOS Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. Esse comando é composto de várias

cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas. 6 DICIONÁRIO DE DADOS É um documento que contem a explicação de todos os objetos da base de dados. Este documento permite que os analistas obtenham informações sobre todos os objetos do modelo de forma textual, contendo explicações por vezes difíceis de incluir no diagrama. Dentro do contexto de SGBD, um dicionário de dados é um grupo de tabelas, habilitadas apenas para leitura ou consulta, ou seja, é uma base de dados, propriamente dita, que entre outras coisas, mantém as seguintes informações: Definição precisa sobre elementos de dados Perfis de usuários, papéis e privilégios Descrição de objetos Integridade de restrições Stored procedures e Jobs Estrutura geral da base de dados Informação de verificação Alocações de espaço Um dos benefícios de um dicionário de dados bem preparado é a consistência entre itens de dados através de diferentes tabelas. Por exemplo, diversas tabelas podem conter números de telefones; utilizando uma definição de um dicionário de dados bem feito, o formato do campo 'número de telefone' definido com "(999)9999-9999" deverá ser obedecido em todas as tabelas que utilizarem esta informação. Quando uma organização constrói um dicionário de dados de dimensão empresarial, o intuito deve ser o de padronizar precisamente definições semânticas a serem adotadas na empresa toda, portanto, ele deve incluir tanto definições semânticas como de representação para elementos de dados.

Os dicionários de dados são mais precisos que glossários porque costumam ter uma ou mais representações de como o dado é estruturado e podem envolver ontologias completas quando lógicas distintas sejam aplicadas a definições desses elementos de dados. 7 BANCO DE DADOS 7.1 DEFINIÇÃO Banco de dados, também chamado de base de dados, é um conjunto de registros, que são significativos para organização, dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD), portanto é errado dizer que um banco de dados é a mesma coisa que um SGBD. Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. 7.2 BANCO DE DADOS RELACIONAL Um Banco de Dados Relacional é um conceito abstrato que define maneiras de armazenar, manipular e recuperar dados estruturados unicamente na forma de tabelas, construindo um banco de dados. Os Bancos de Dados Relacionais foram desenvolvidos para prover acesso facilitado aos dados, possibilitando que os usuários utilizassem uma grande variedade de abordagens no tratamento das informações. Pois, enquanto em um banco de dados hierárquico os usuários precisam definir as questões de negócios de maneira específica, iniciando pela raiz do mesmo, nos Bancos de Dados Relacionais os usuários podem fazer perguntas relacionadas aos negócios através de vários pontos. Bancos de dados Relacionais são baseados no modelo relacional que é um modelo de dados, onde todos os dados estão guardados em tabelas (ou, matematicamente falando, relações).

7.3 AS 12 REGRAS DE UM BANCO DE DADOS RELACIONAL Formuladas por Edgar Frank Codd, em 1985, matemático britânico desenvolvedor do modelo de banco de dados, definem o que um banco de dados necessidade para ser considerado relacional: 1 Regra Fundamental: Um SGBD relacional deve gerenciar seus dados usando apenas suas capacidades relacionais. 2 Regra da informação: Toda informação deve ser representada de uma única forma, como dados em uma tabela 3 Regra da garantia de acesso: Todo dado (valor atômico) pode ser acessado logicamente (e unicamente) usando o nome da tabela, o valor da chave primária da linha e o nome da coluna. 4 Tratamento sistemático de valores nulos: Os valores nulos (diferente do zero, da string vazia, da string de caracteres em brancos e outros valores não nulos) existem para representar dados não existentes de forma sistemática e independente do tipo de dado. 5 Catálogo dinâmico on-line baseado no modelo relacional: A descrição do banco de dados é representada no nível lógico como dados ordinários (isso é, em tabelas), permitindo que usuários autorizados apliquem as mesmas formas de manipular dados aplicados aos dados comuns ao consultá-las. 6 Regra da sub-linguagem compreensiva: Um sistema relacional pode suportar várias linguagens e formas de uso, porém deve possuir ao menos uma linguagem com sintaxe bem definida e expressa por cadeia de caracteres e com habilidade de apoiar a definição de dados, a definição de visões, a manipulação de dados, as restrições de integridade, a autorização e a fronteira de transações. 7 Regra da atualização de visões: Toda visão que for teoricamente atualizável será também atualizável pelo sistema. 8 Inserção, atualização e eliminação de alto nível: A capacidade de manipular a relação base ou relações derivadas como um operador único não se aplica apenas a recuperação de dados, mas também a inserção, alteração e eliminação de dados. 9 Independência dos dados físicos:

a. Programas de aplicação ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as modificações na representação de armazenagem ou métodos de acesso internos. b. Independência lógica de dados c. Programas de aplicação ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as mudanças de informação que permitam teoricamente a não alteração das tabelas base. 10 Independência de integridade: As relações de integridade específicas de um banco de dados relacional devem ser definidas em uma sub-linguagem de dados e armazenadas no catálogo (e não em programas). 11 Independência de distribuição: A linguagem de manipulação de dados deve possibilitar que as aplicações permaneçam inalteradas estejam os dados centralizados ou distribuídos fisicamente. 12 Regra da Não-subversão: Se o sistema relacional possui uma linguagem de baixo nível (um registro por vez), não deve ser possível subverter ou ignorar as regras de integridade e restrições definidas no alto nível (muitos registros por vez). 7.4 VANTAGENS DE UM BOM PROJETO DE BANCO DE DADOS Reflete a estrutura real do problema Pode representar todos os dados esperados ao longo do tempo Evita armazenamento redundante de itens de dados Fornece acesso eficiente aos dados Suporta a manutenção da integridade dos dados ao longo do tempo 8 MODELO RELACIONAL Em um banco de dados relacional é muito importante a etapa da modelagem de dados, pois esta etapa definirá aspectos importantes da estrutura que afetará o desempenho de sua base de dados futuramente. Por exemplo, é na etapa da modelagem de dados que eliminamos as redundâncias das informações por separalas corretamente em tabelas, evitando assim que nossa base tenha um tamanho maior do que o necessário, ou que durante um select o mysql consuma mais recursos que o necessário.

A modelagem de dados deve se adequar com a necessidade do cliente e para que se possa realizar a mesma deve-se conhecer os requisitos do cliente. Apresentarei aspectos técnicos quanto asos elementos da modelagem e depois será apresentado um estudo de caso com um exemplo de modelagem dos dados. 8.1 PRINCIPAIS COMPONENTES 8.1.1 Tabelas Também chamada de relações ou entidades, as tabelas podem ser descritas como armazem de dados. Uma tabela, nada mais é do que uma simples estrutura de linhas e colunas, onde cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas, sendo que o limite pode ser imposto tanto pela ferramenta de software utilizada, quanto pelos recursos de hardware disponíveis no equipamento. As tabelas associam-se entre si através de regras de relacionamentos, estas regras consistem em associar um ou vários atributo de uma tabela com um ou vários atributos de outra tabela. 8.1.2 Registros Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário. 8.1.3 Colunas As colunas de uma tabela são também chamadas de Atributos. Ao conjunto de valores que um atributo pode assumir chama-se domínio. Por exemplo: em um campo do tipo numérico, serão somente armazenados números. 8.1.4 Chave As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro.

Por exemplo, se um banco de dados tem como chaves Código do Produto e ID Sistema, sempre que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer uma consulta para identificar se o registro já não se encontra gravado na tabela. Neste caso, um novo registro não será criado, resultando esta operação apenas da alteração do registro existente. Temos dois tipos de chaves: Chave primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá. Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também o será. 9 O QUE É O MODELO DE ENTIDADE E RELACIONAMENTO (MER) O modelo de entidades e relacionamentos é um modelo abstrato cuja finalidade é descrever, de maneira conceitual, os dados a serem utilizados em um sistema de informações ou que pertencem a um domínio. Um relacionamento do Modelo de Entidades e Relacionamentos é uma associação entre entidades distintas. As ligações são feitas ligando-se um campo de uma tabela X com um campo de uma tabela Y, por meio da inclusão do campo chave da tabela Y como um campo (conhecido como chave estrangeira) da tabela X. Por meio das chaves estrangeiras, é possível implementar restrições nos SGBDR. 9.1 PRINCIPAIS TIPOS DE RELACIONAMENTO Um para um (1 para 1) - indica que as tabelas têm relação unívoca entre si, ou seja, na qual um elemento da primeira tabela conduz a um, e somente a um, elemento da segunda tabela. Neste tipo você escolhe onde ficara a chave estrangeira. Um para muitos (1 para N) - a chave primária da tabela que tem o lado 1 vai para a tabela do lado N, ou seja um elemento da primeira tabela porderá

conduzir a vários elemntos da segunda. No lado N ela é chamada de chave estrangeira; Muitos para muitos (N para N) - quando tabelas têm entre si relação n..n, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relação então se reduz para uma relação 1..n, sendo que o lado n ficará com a nova tabela criada. 10 MYSQL 10.1 DEFINIÇÃO O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL como interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo. Este sucesso deve-se em grande medida à fácil integração com o PHP incluído, quase que obrigatoriamente, nos pacotes de hospedagem de sites da Internet oferecidos atualmente. 10.2 HISTÓRIA DO MYSQL O MySQL foi criado na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius, que têm trabalhado juntos desde a década de 1980. Hoje seu desenvolvimento e manutenção empregam aproximadamente 400 profissionais no mundo inteiro, e mais de mil contribuem testando o software, integrando-o a outros produtos, e escrevendo a respeito dele. No dia 16 de Janeiro de 2008, a MySQL AB, desenvolvedora do MySQL foi adquirida pela Sun Microsystems, por US$ 1 bilhão, um preço jamais visto no setor de licenças livres. No dia 20 de Abril de 2009 a Oracle compra a Sun Microsystems e todos o seu produtos, incluindo o MySQL. A Comissão Europeia ainda não aprovou a aquisição. 10.3 NOME E MASCOTE A derivação do nome MySQL não é bem definida. Nosso diretório base e um grande número de nossas bibliotecas e ferramentas sempre tiveram o prefixo ``my''

por pelo menos 10 anos. A filha de Monty também ganhou o nome My. Qual das duas originou o nome do MySQL continua sendo um mistério, mesmo para nós. O nome do golfinho do MySQL (nosso logo) é Sakila. Sakila foi escolhido pelos fundadores da MySQL AB de uma enorme lista de nomes sugeridos pelos usuários em nosso concurso "Name the Dolphin". O nome vencedor foi enviado por Ambrose Twebaze, um desenvolvedor de programas open source de Swaziland, Africa. De acordo com Ambrose, o nome Sakila tem as suas raízes em SiSwati, a língua local de Swaziland. Sakila é também o nome de uma cidade em Arusha, Tanzania, próxima ao país de orígem de Ambrose, Uganda. 10.4 CARACTERÍSTICAS DO MYSQL Portabilidade (suporta praticamente qualquer plataforma atual); Compatibilidade (existem drivers ODBC, JDBC e.net e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, Visual basicpython, Perl, PHP, ASP e Ruby) Excelente desempenho e estabilidade; Pouco exigente quanto a recursos de hardware; Facilidade de uso; É um Software Livre com base na GPL; Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid Suporta controle transacional; Suporta Triggers; Suporta Cursors (Non-Scrollable e Non-Updatable); Suporta Stored Procedures e Functions; Replicação facilmente configurável; Interfaces gráficas de fácil utilização cedidos pela MySQL Inc. 10.5 CARACTERÍSTICAS DO SERVIDOR MYSQL O Servidor MySQL é escrito em múltiplas camadas com módulos independentes. Alguns dos novos módulos estão listados abaixo com indicações de quão bem-testado foi cada um deles.

Replicação: Grandes grupos de servidores usando replicação estão em uso, com bom resultados. O trabalho no aprimoramento dos recursos de replicação continua no MySQL 4.x. Tabelas InnoDB: O mecanismo de armazenamento transacional InnoDB foi declarado estável na árvore do MySQL 3.23, a partir da versão 3.23.49. InnoDB tem sido usado em sistema de produção grandes e com carga pesada. Tabelas BDB: O código do Berkeley DB é muito estável, mas ainda estamos melhorando a interface do mecanismo de armazenamento transacional do BDB no Servidor MySQL, assim levará algum tempo até que ele esteja tão bem testado quanto os outro tipos de tabela. Pesquisas Full-text: Pesquisa full-text funcionam mas ainda não são largamente usadas. Melhoramentos importantes forma implementados no MySQL 4.0. MyODBC 3.51: Em grande uso na produção. Alguns problemas apresentados parecem ser relacionados a aplicação e independente do driver ODBC ou do servidor de banco de dados. Recuperação automática de tabelas MyISAM: Este status se aplica apenas ao novo código que confere no mecanismo de armazenamento MyISAM que verifica, na inicialização, se a tabela foi fechada corretamente e executa uma conferência/reparo automático da tabela em caso negativo. Bulk-insert: Novo recurso nas tabelas MyISAM no MySQL 4.0 para inserções mais rápidas de vários registros. Locking: Esse módulo é muito dependente do sistema. Em alguns sistemas existem certos problemas por utilizar o locking padrão do SO (fcntl(). Nestes casos, você deve executar o mysqld com o parâmetro --skip-external-locking. São conhecidos alguns problemas ocorridos em alguns sistemas Linux e no SunOS quando utiliza-se sistemas de arquivos montados em NFS.

11 APLICATIVOS UTILIZADOS PARA A MANUTENÇÃO DA BASE DE DADOS 11.1 MYSQL ENTERPRISE SERVER 5.1 MySQL Enterprise Server é o mais confiável, segura e up-to-date versão do MySQL para o custo-eficácia, fornecendo E-commerce, Online Transaction Processing (OLTP) e aplicações multi-terabyte Data Warehousing. É uma operação totalmente integrada de segurança, banco de dados compatível com ACID cometer completo, rollback, recuperação de falhas e capacidades de nível de linha de bloqueio. MySQL fornece a facilidade de uso, escalabilidade e desempenho que fez a MySQL banco de dados mundial de código aberto mais popular. 11.2 MYSQL ENTERPRISE MONITOR A MySQL Enterprise Monitor monitora os servidores MySQL e alerta para problemas potenciais antes que eles afetem seu sistema. É como ter um "DBA Virtual Assistant" ao seu lado para recomendar as melhores práticas para eliminar as vulnerabilidades de segurança, melhorar a replicação de dados, otimizar o desempenho, identifica problemas no consumo de recursos, entre outras funções.

Figura 1 - Mysql Entreprise Monitor Figura 2 - Mysql Enterprise Events

11.3 MYSQL QUERY ANALYZER O MySQL Query Analyzer é um aplicativo de monitoramento de desempenho de consulta e localizar com precisão o código SQL que está causando uma desaceleração. As consultas são apresentadas em uma visão agregada em todos os servidores MySQL que você pode filtrar para problemas específicos de consulta e analisar o código mais caro. O MySQL Query Analyzer, possibilita que você possa melhorar o código SQL durante o desenvolvimento ativo, e continuamente monitorar e ajustar as consultas em produção. Figura 3 - Mysql Query Analizer 11.4 MYSQL CLUSTER É uma tecnologia de banco de dados que mantém os dados em memória, e que tem como base não compartilhar recursos entre processos, objetivando uma solução de alta disponibilidade utilizando hardware de baixo custo. Possui um shared-nothing arquitetura distribuída com nenhum ponto único de falha para assegurar alta disponibilidade e desempenho, permitindo-lhe atender a seus mais exigentes requisitos das aplicações de missão crítica.

MySQL Cluster elimina a necessidade de armazenamento compartilhado caro, pois combina processamento paralelo e redundância de dados. 12 ESTUDO DE CASO 12.1 REQUISITOS DO CLIENTE REQUISITOS FUNCIONAIS O sistema deverá conter um controle de clientes. O sistema deverá conter um controle de fornecedores. O sistema deverá conter um controle de estoque. PRIORIDADE SOLUÇÃO PROSPOSTA Alta Será desenvolvido um módulo onde o administrador do sistema poderá: cadastrar, editar, excluir e pesquisar informações referentes aos clientes. Haverá relatórios no sistema referente às informações cadastrais e financeiras dos clientes. Alta Será desenvolvido um módulo onde o administrador do sistema poderá: cadastrar, editar, excluir e pesquisar informações referentes aos fornecedores. Haverá relatórios no sistema referentes às informações cadastrais dos fornecedores e um comparativo entre os preços dos fornecedores. Alta Será desenvolvido um módulo onde o administrador do sistema poderá: cadastrar, editar, excluir e pesquisar informações referentes aos produtos em estoque. O sistema alertará o administrador quando determinado item estiver acabando.

O Sistema deverá controlar os débitos e créditos O sistema deverá conter um controle de vendas. O sistema deverá realizar emissão e envio de boletos. O sistema deverá conter um controle de acessos e permissões de usuário (sistema de gerenciamento). O sistema deverá conter um controle de pedidos. Alta O sistema deverá conter uma listagem dos clientes que possuem débitos. E o sistema enviar alertas de e-mail para o cliente que está em débito de acordo com período estipulado pelo administrador. Alta Será desenvolvido tanto na parte administrativa, quanto no e- commerce um módulo onde o administrador poderá cadastrar e calcular as vendas. Haverá relatórios no sistema indicando os produtos mais vendidos. Quando for efetuada a venda de um produto o sistema deverá atualizar automaticamente a quantidade do produto no estoque. Alta Será desenvolvido um módulo onde o administrador fará a emissão de boletos e poderá imprimi-los. O sistema enviará os mesmos mensalmente de forma automatizada para os e-mails dos clientes. Alta Será desenvolvido um módulo para cadastro de usuários no sistema, onde estes terão seus acessos diferenciados de acordo com seu nível de permissão. Alta Será desenvolvido um módulo onde o administrador do sistema poderá: cadastrar, editar, excluir e pesquisar informações referentes aos pedidos