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

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

Banco de Dados I Aula 20.

Apresentações semelhantes


Apresentação em tema: "Banco de Dados I Aula 20."— Transcrição da apresentação:

1 Banco de Dados I Aula 20

2 Agenda Notícia Comentários sobre os artigos trabalhados
Prática no MySQL

3 Texto 1. Gerenciamento de Usuários e Controle de Acessos do MySQL
Controles de acessos do MySQL Criação de usuários e gerenciamento de seus privilégios.

4 Limitação de Acesso O MySQL possui um mecanismo que permite limitar o acesso de um usuário a apenas um banco, tabela ou coluna, além de poder controlar o acesso de acordo com o host a partir de onde está sendo feita a conexão com o servidor. Pode-se ainda, conceder privilégios diferentes para cada host de onde o usuário possa estabelecer a conexão. Assim, é possível que determinados comandos possam ser executados somente quando o usuário estiver em um host específico, por exemplo o mesmo host do servidor MySQL (localhost).

5 Sintaxe do Comando . A sintáxe resumida do comando GRANT é exibida a seguir: GRANT priv [(colunas)] [, priv [(colunas)]] ... ON {*.* | db.* | db.tabela} TO usuario [IDENTIFIED BY 'senha'] [, usuario [IDENTIFIED BY 'senha']] ...

6 Exemplo No exemplo a seguir é criado um usuário com o nome teste que pode se conectar somente do host onde o servidor está em execução (localhost), o usuário só poderá fazer SELECT nas colunas nome e idade da tabela pessoa, que se encontra no banco de dados rh. A senha do usuário é mysql>GRANT SELECT (nome, idade) ON rh.pessoa TO IDENTIFIED BY "12345"; Para listar os privilégios deste usuário utilize o comando: mysql>SHOW GRANTS FOR

7 Dicas Remover ou alterar a senha dos usuários:
Anônimo e root na instalação

8 Texto 2. Implementando Integridade Referencial no MySQL
Para adicionarmos restrições de integridade (constraints) às chaves estrangeiras, é necessário criar as tabelas como InnoDB.

9 Tipos de Restrições CASCADE: ao se remover um registro da tabela referenciada pela chave estrangeira os registros relacionados àquele removido serão eliminados em todas as tabelas relacionadas. RESTRICT:não permite a remoção de registros que possuam relacionamentos em outras tabelas. SET NULL e SET DEFAULT. atribuem os valores DEFAULT ou NULL para as chaves estrangeiras cujos registros relacionados foram excluídos.

10 Exemplo CREATE TABLE aluno (         id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,         nome CHAR(30) NOT NULL ) TYPE=InnoDB; CREATE TABLE cursos (         id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,         nome CHAR(30) NOT NULL ) TYPE=InnoDB; CREATE TABLE notas (         aluno_id INT NOT NULL,         cursos_id INT NOT NULL,         date DATE NOT NULL,         nota DOUBLE NOT NULL,         PRIMARY KEY(aluno_id, cursos_id, date),         INDEX i2 (cursos_id),         FOREIGN KEY (aluno_id) REFERENCES aluno(id) ON DELETE CASCADE,         FOREIGN KEY (cursos_id) REFERENCES cursos(id) ON DELETE RESTRICT ) TYPE=InnoDB;

11 Explicação A tabela cursos que contém as disciplinas ministradas e a tabela notas com os pontos dos alunos em todos os cursos freqüentados por eles. No modelo é possível que um curso possua várias avaliações em datas distintas. Neste caso, foram criadas as tabelas como tipo InnoDB (TYPE=InnoDB), para que as regras de integridade sejam respeitadas. As regras definidas foram: um CASCADE para aluno, isto é, se for removido um registro da tabela de aluno, todas as suas notas serão removidas automaticamente. No caso da tabela de cursos, não será possível remover um curso que possua notas cadastradas para ele. Além da restrição ON DELETE, o InnoDB permite também o ON UPDATE, que aplica as restrições no caso de atualizações dos campos ralacionados entre as tabelas.

12 Texto 3. Trabalhando com os Vários Tipos de Tabelas do MySQL
No MySQL é possível escolher o tipo da tabela no momento da criação da mesma. O formato de armazenamento dos dados, bem como alguns recursos do banco de dados são dependentes do tipo de tabela escolhido. A definição do tipo de tabela é feito através do comando CREATE TABLE, como mostrado a seguir:

13 MyISAM: Este é o tipo de tabela padrão do MySQL. Caso não seja informado o tipo de tabela, o MySQL criará a tabela do tipo MyISAM. Problemas: Lock de tabela inteira Instável, não transacional ( não possui Commit e Rollback) Vantagem: Desempenho

14 InnoDB: O InnoDB é um tipo de tabela transacional, desenvolvido pela InnoDBase Oy. A partir da versão 4.0 do MySQL ele passa a ser parte integrada das distribuições do MySQL. Transacional, Integridade referencial, com implementação dos constraints SET NULL, SET DEFAULT, RESTRICT e CASCADE; Ferramenta de backup on-line (ferramenta comercial, não GPL); Lock de registro, como Oracle, DB2, etc; Níveis de isolamento; Armazenamentos de dados em tablespace.

15 Tablespace Tablespace é um termo em língua inglesa que designa uma sub-divisão lógica de um banco de dados utilizado para agrupar estruturas lógicas relacionadas. As tablespaces apenas especificam a localização de armazenamento do banco de dados e são armazenadas fisicamente em datafiles, que alocam imediatamente o espaço especificado na sua criação. Exemplo: A primeira tablespace criada pelo ORACLE é a System.

16 Tablespace no Postgresql 8
Local no sistema de arquivos onde serão armazenados os objetos; Melhoria no gerenciamento de discos; Selecionar os sistemas de arquivos que irá armazenar as informações (isso inclui esquemas, tabelas e índices posso escolher uma determinada PASTA no servidor a qual será utilizada para armazenar uma determinada informação); No PostgreSQL, os objetos como tabela e índices são arquivos sem extensão e nomeados numericamente – OID – Object ID).

17 Utilidades Tuning: Podemos criar uma tablespace chamada table_index a qual está vinculada ao segundo HD e nesta tablespace armazenaremos TODOS os índices de nosso banco de dados. Com isso, o acesso à informação é mais rápido e diminui a sobrecarga do HD (e todo o conjunto lógico/físico envolvido) para ler dados e índices; Gerenciamento de Espaço: Através deste conceito é possível adicionar um outro HD e criar uma nova tablespace para que as novas tabelas e índices sejam colocadas neste novo HD com o intuito de não sofrer com problemas de espaço em disco.

18 Prática No MySQL 1. Criar tabelas do vistas no texto com restrições de integridade; 2. Criar Expecificar permissões PARA User1/Localhost com o comando GRANT.


Carregar ppt "Banco de Dados I Aula 20."

Apresentações semelhantes


Anúncios Google