A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Banco de Dados - MYSQL QWERTY – Escola de Educação Profissional

Apresentações semelhantes


Apresentação em tema: "Banco de Dados - MYSQL QWERTY – Escola de Educação Profissional"— Transcrição da apresentação:

1 Banco de Dados - MYSQL QWERTY – Escola de Educação Profissional
Técnico em Informática Professor: Marcio Rodrigues Ferreira. Bacharel em Informática Pós-Graduado em Banco de Dados Parte desse material foi retirado da WinkiPédia.

2 Introdução Tudo no computador é um arquivo, o nosso banco de dados também será um arquivo. Um SGBD possui muitas ferramentas que gerencia o nosso arquivo de banco de dados. Para termos um banco de dados é necessário que façamos um modelo de dados, normalmente o modelo mais utilizado é o de entidade e relacionamento (ER). O dado se diz que é a unidade atômica da informação, um conjunto dos mesmos obtemos a informação, por exemplo: Dado, COR É AZUL, não diz muito certo mas se eu unir a COR com a DESCRIÇÃO fica melhor, assim O SLIDE tem COR AZUL agora sim tenho uma informação. No Banco de dados um conjunto de dados eu formo uma tabela, exemplo: -Tabela Pessoa: -Dados: *Codigo . Nome . Telefone .Endereco .Cidade . Cep . UF Na tabela eu posso gravar o informação da pessoa e assim cada pessoa será um registro.

3 O que é Banco de Dados ? Banco de dados (ou base de dados), é um conjunto de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim. Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. Muitas vezes o termo banco de dados é usado, de forma errônea, como sinônimo de SGBD. O modelo de dados mais adotado hoje em dia é o modelo relacional, onde as estruturas têm a forma de tabelas, compostas por tuplas (linhas) e colunas. Um Sistema de Gestão de Bases de Dados, (SGBD) não é nada mais do que um conjunto de programas que permitem armazenar, modificar e extrair informação de um banco de dados. Há muitos tipos diferentes de SGBD. Desde pequenos sistemas que funcionam em computadores pessoais a sistemas enormes que estão associados a mainframes. Um Sistema de Gestão de Base de Dados 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. Assim sendo, são basicamente três as componentes de um SGBD: 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 (guarde definições de elementos de dados e respectivas características – descreve os dados, etc.). (Gouveia; 2004).

4 Utilização do Banco de Dados ?
Os bancos de dados são utilizados em muitas aplicações, abrangendo praticamente todo o campo dos programas de computador.  - Exemplos: Rede Bancária, Hospitais, Prefeituras, Indústrias, Escolas, Universidades, etc.

5 Apresentação dos Dados
A apresentação dos dados geralmente é semelhante à de uma planilha eletrônica, porém os sistemas de gestão de banco de dados possuem características especiais para o armazenamento, classificação, gestão da integridade e recuperação dos dados. Com a evolução de padrões de conectividade entre as tabelas de um banco de dados e programas desenvolvidos em linguagens como Java, Delphi, Visual Basic, C++ etc, a apresentação dos dados, bem como a navegação, passou a ser definida pelo programador ou o designer de aplicações. Como hoje em dia a maioria das linguagens de programação fazem ligações a bancos de dados, a apresentação destes tem ficado cada vez mais a critério dos meios de programação, fazendo com que os bancos de dados deixem de restringir-se às pesquisas básicas, dando lugar ao compartilhamento, em tempo real, de informações, mecanismos de busca inteligentes e permissividade de acesso hierarquizada.

6 Direitos de Propriedade
A Directiva CE de Bases de Dados (EU Database Directive), estabelecida pelo Parlamento Europeu em de 11 de março de 1996, fixa os termos de proteção jurídica e física do sistema de bancos de dados, em particular os direitos de propriedade sobre a base. Mesmo para os países que não a adotam explicitamente, ou não possuam normas mais específicas sobre o tema, como o Brasil, tem sido a principal referência. Podemos dizer também, que existem: banco de dados de uso livre, sem custo, como o Firebird, MySQL, Postgres, SQL Lite, etc; banco de dados que precisa de licença de uso como, o SQL Server, Oracle, DBII, etc.

7 Transação É um conjunto de procedimentos que é executado num banco de dados, que para o usuário é visto como uma única ação. A integridade de uma transação depende de 4 propriedades, conhecidas como ACID. Atomicidade Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Qualquer ação que constitui falha na unidade de trabalho, a transação deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada (commit). Consistência Nenhuma operação do banco de dados de uma transação pode ser parcial.O status de uma transação deve ser implementado na íntegra. Por exemplo, um pagamento de conta não pode ser efetivado se o processo que debita o valor da conta corrente do usuário não for efetivado antes, nem vice-versa. Isolamento Cada transação funciona completamente à parte de outras estações. Todas as operações são parte de uma transação única. O principio é que nenhuma outra transação, operando no mesmo sistema, pode interferir no funcionamento da transação corrente(é um mecanismo de controle). Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento. Durabilidade Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subseqüente.Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados num repositório permanente, não sendo passíveis de falha por uma falha de hardware. Na prática, alguns SGBDs relaxam na implementação destas propriedades buscando desempenho. Controle de concorrência é um método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações abortadas (rollback). Uma transação é uma unidade que preserva consistência. Requeremos, portanto, que qualquer escalonamento produzido ao se processar um conjunto de transações concorrentemente seja computacionalmente equivalente a um escalonamento produzindo executando essas transações serialmente em alguma ordem. Diz-se que um sistema que garante esta propriedade assegura a seriabilidade.

8 Como Funciona Usuário Aplicação Dados SGBD

9 Diferentes níveis de abstração
Usuário Camada Externa Aplicação Camada Lógica SGBD Camada Física Dados

10 Formas Normais O objetivo da normalização de um banco de dados é evitar os problemas que podem provocar falhas no projeto do banco de dados, bem como eliminar a mistura de assuntos e as correspondentes redundâncias dos dados desnecessárias. A abreviação usada, (NF), vem do inglês, "Normal Form". O processo de normalização aplica uma série de regras sobre as tabelas (também chamadas de relações) de um banco de dados, para verificar se estão corretamente projetadas.

11 Primeira Forma Normal Um esquema de relação R está na 1FN se todos os seus atributos forem atômicos (simples) e monovalorados, ou seja, não são permitidos atributos multivalorados, atributos compostos ou atributos multivalorados compostos. Exemplo: FUNCIONÁRIOS = {CODFUNC + NOME + CARGO + {PROJETO + DATAINI + DATA FIM}} Para colocar na 1FN: FUNCIONÁRIOS = {CODFUNC + NOME + CARGO} FUNC_PROJ = {CODFUNC + PROJETO + DATAINI + DATA FIM} OBS: A chave primária de FUNCIONÁRIOS vai ser a chave estrangeira de FUNC_PROJ.

12 Segunda Forma Normal Para estar na 2NF uma tabela deve (1) estar na 1NF e (2) todos os seus atributos que não façam parte de alguma chave candidata devem ser determinados unicamente por qualquer chave candidata da tabela. Se todas as chaves candidatas de uma tabela contiverem somente 1 atributo, esta já se encontra na 2NF. Em outras palavras, se algum campo depender somente de parte de uma chave candidata composta (e não da chave composta como um todo), então este campo deve ser extraído para outra tabela. A tabela abaixo não está na 2NF: ALUNOS_CURSOS = {ID_ALUNO + ID_CURSO + NOTA + DESCRICAO_CURSO} O problema consiste no fato de que o campo DESCRICAO_CURSO depende somente do campo ID_CURSO (apesar da chave ser composta), que é parte da chave primária da tabela. Para que esta tabela esteja na 2NF, o campo DESCRICAO_CURSO deve ser extraído para outra tabela: ALUNOS_CURSOS = {ID_ALUNO + ID_CURSO + NOTA} CURSOS = {ID_CURSO + DESCRICAO_CURSO}

13 Terceira Forma Normal A terceira forma normal (3NF) exige que a tabela esteja em 2NF e que todos os atributos que não são chave sejam mutuamente independentes, isto é, que não existam funções que definam um ao outro. Portanto, sempre a chave por inteiro deve definir toda a tabela. Isto exige que atributos que não dependem diretamente da chave sejam separados em uma tabela distinta. Em outras palavras, caso exista um ou mais atributos que dependam de um atributo não-chave, estes atributos deverão ser extraídos para outra tabela. A tabela abaixo não está na 3NF: FUNCIONARIOS = {ID + NOME + ID_CARGO + DESCRICAO_CARGO} O problema é que o campo DESCRICAO_CARGO depende exclusivamente do campo ID_CARGO, que não faz parte da chave da tabela. Para deixar esta tabela na 3NF, basta extrair o campo para outra tabela: FUNCIONARIOS = {ID + NOME + ID_CARGO} CARGOS = {ID_CARGO + DESCRICAO_CARGO}

14 Forma normal Boyce/Codd (BCNF)
Definição que engloba as outras formas normais, e define que uma tabela está em BCNF se, e somente se, todo determinante funcional for em relação a uma chave candidata. Na prática, uma tabela está em BCNF se estiver em 3NF e não existir dependência funcional dentro da chave primária. Ou seja, se todos os atributos são funcionalmente dependentes da chave, de toda a chave e nada mais do que a chave. Ou, em outras palavras, todos os determinantes são chaves candidatas. Um modelo que está em BCNF está pronto para ser implementado numa arquitetura de banco de dados relacional.

15 Normalizar os dados abaixo
Nome Endereco Telefone Cidade Cep Uf Tipo Sanguineo Rh Turma Disciplina Pai Mae Responsavel Professor Regente Portador Doença Sexo Data Nascimento Estado Civil Nota Aluno

16 Instalação do WAMP WampServer (conhecido anteriormente como WAMP5) é um software publicado sob a GNU General Public License desenvolvido pela PHP Team. É usado para instalar rapidamente no computador os softwares PHP 5, MySQL e Apache, disponibilizando suporte ao uso de scripts PHP localmente no Windows Apache - Servidor da Apache Software Foundation MySQL - Banco de dados da MySQL AB PHP - Linguagem de script da The PHP Group

17 Acessando o phpMyAdmin

18 Criando Tabela

19 Tipo de Campos Os tipos de dados que pode ter um campo, podem-se agrupar em três grandes grupos: Tipos numéricos Tipos de Data Tipos de Cadeia

20 Tipos numéricos Existem tipos de dados numéricos, que se podem dividir em dois grandes grupos, os que estão em vírgula flutuante (com decimais) e os que não. TinyInt: é um número inteiro com ou sem signo. Com signo a margem de valores válidos é desde -128 até 127. Sem signo, a margem de valores é de 0 até Bit ou Bool: um número inteiro que pode ser 0 ou 1. SmallInt: número inteiro com ou sem signo. Com signo a margem de valores válidos é desde até Sem signo, a margem de valores é de 0 até MediumInt: número inteiro com ou sem signo. Com signo a margem de valores válidos é desde até Sem signo, a margem de valores é de 0 até Integer, Int: número inteiro com ou sem signo. Com signo a margem de valores válidos é desde até Sem signo, a margem de valores é de 0 até

21 Tipos numéricos BigInt: número inteiro com ou sem signo. Com signo a margem de valores válidos é desde até Sem signo, a margem de valores é de 0 até Float: número pequeno em vírgula flutuante de precisão simples. Os valores válidos vão desde E+38 até E-38,0 eté desde E-38 até E xReal, Double: número em vírgula flutuante de dupla precisão. Os valores permitidos vão desde E+308 até E-308, 0 e desde E-308 até E Decimal, Dec, Numeric:  Número em vírgula flutuante desempacotado. O número armazena-se como uma cadeia.

22 Tipos data Na hora de armazenar datas, há que ter em conta que MySQL não verifica de uma maneira estricta se uma data é válida ou não. Simplesmente comprova que o mês está compreendido entre 0 e 12 e que o dia está compreendido entre 0 e Date: tipo data, armazena uma data. A margem de valores vai desde o 1 de Janeiro de 1001 ao 31 de dezembro de O formato de armazenamento é de ano-mes-dia. DateTime: Combinação de data e hora. A margem de valores vai desde o 1 ed Janeiro de 1001 às 0 horas, 0 minutos e 0 segundos ao 31 de Dezembro de 9999 às 23 horas, 59 minutos e 59 segundos. O formato de armazenamento é de ano-mes-dia horas:minutos:segundos TimeStamp: Combinação de data e hora. A margem vai desde o 1 de Janeiro de 1970 ao ano O formato de armazenamento depende do tamanho do campo: Time: armazena uma hora. A margem de horas vai desde -838 horas, 59 minutos e 59 segundos. O formato de armazenamento é 'HH:MM:SS'. Year: armazena um ano. A margem de valores permitidos vai desde o ano 1901 ao ano O campo pode ter tamanho dois ou tamanho 4 dependendo de se queremos armazenar o ano com dois ou quatro algarismos.

23 Tipos de cadeia Char(n):  armazena uma cadeia de longitude fixa. A cadeia poderá conter desde 0 até 255 caracteres. VarChar(n): armazena uma cadeia de longitude variável. A cadeia poderá conter desde 0 até 255 caracteres. Dentro dos tipos de cadeia pode-se distinguir dois subtipos, os tipo Test e os tipo Blob (Binary Large Object) A diferença entre um tipo e outro é o tratamento que recebem na hora de ordená-los e compará-los. No tipo test ordena-se sem ter importância as maiúsculas e as minúsculas e no tipo blob ordena-se tendo em conta as maiúsculas e minúsculas. Os tipos blob utilizam-se para armazenar dados binários como podem ser ficheiros. TinyText e TinyBlob: Coluna com uma longitude máxima de 255 caracteres. Blob e Text: um texto com um máximo de caracteres. MediumBlob e MediumText: um texto com um máximo de caracteres. LongBlob e LongText: um texto com um máximo de caracteres Há que ter em conta que devido aos protocolos de comunicação os pacotes podem ter um máximo de 16 Mb. Enum: campo que pode ter um único valor de uma lista que se especifica. O tipo Enum aceita até valores diferentes. Set: um campo que pode conter nenhum, um ou vários valores de uma lista. A lista pode ter um máximo de 64 valores.

24 Palavras-Chave em SQL . DML - Linguagem de Manipulação de Dados
. DDL - Linguagem de Definição de Dados . DCL - Linguagem de Controle de Dados . DTL - Linguagem de Transação de Dados . DQL - Linguagem de Consulta de Dados . Cláusulas . Operadores Lógicos . Operadores Relacionais . Funções de Agregação

25 DML - Linguagem de Manipulação de Dados
. SELECT: usado para selecionar um conjunto de registros de uma tabela existente . SELECT Nome,Sobrenome FROM Estudante WHERE Sexo=1; . INSERT: usado para adicionar um novo registro a uma tabela existente . INSERT INTO `Eventos` VALUES (6, 'XII Ciência Jovem de Pernambuco', ' :00:00', ' :00:00', 'Olinda - PE', 'Sec. de Ciência, Tec. e Meio Ambiente do Governo do Estado', ' 4, 1);

26 DML - Linguagem de Manipulação de Dados
. UPDATE: usado para alterar um registro existente na tabela . UPDATE Estudante SET Nome='Nathalia' WHERE UsuarioID=15 . DELETE: usado para apagar um registro . DELETE FROM Estudante WHERE UsuarioID=15;

27 DDL - Linguagem de Definição de Dados
. CREATE: cria um objeto (uma Tabela, por exemplo) dentro da base de dados . CREATE TABLE User (`UserID` int(11) NOT NULL default '0', `Name` varchar(255) NOT NULL default '', `LastName` varchar(255) NOT NULL default '', `Sex` char(1) default NULL, `CPF` varchar(12) NOT NULL default '', PRIMARY KEY (`UserID`)); . DROP: apaga um objeto do banco de dados . DROP TABLE User; . ALTER: alguns SGBDs usam esse comando, que permite ao usuário alterar um objeto, como,adicionando uma coluna a uma tabela existente.


Carregar ppt "Banco de Dados - MYSQL QWERTY – Escola de Educação Profissional"

Apresentações semelhantes


Anúncios Google