Introdução SQL SERVER hugomcp@di-ubi.pt, 2004 Arranque do MS SQLServer UNIVERSIDADE DA BEIRA INTERIOR Departamento de Informática Bases de Dados II Engª. Informática + Ensino Informática Pode-se usar o SQL Service Manager para iniciar a execução do Sistema Gestor de Bases de Dados. Para tal é necessário seguir o seguinte procedimento: 1. Clicar no ícone SQL Service Manager localizado na barra de serviços do Windows (Canto inferior direito) 2. Carregar em Start/Continue ou duplo clique na luz verde. 3. Fechar ou minimizar a janela do SQL Service Manager. (De qualquer das formas a aplicação continuará a executar em background) Sofware instalado em ambientes 32 bits ISQL/W Interactive SQL for Windows o Permite a comunicação com o SGBD através de blocos SQL. Possui um interface gráfico para facilitar a introdução dos blocos e visualização e aproveitamento dos resultados. SQL Client Configuration Utility o Permite a personalização das opções relativas ao software de cliente. Estas opções podem incluir a definição da topologia de rede ou a especificação de livrarias dinâmicas necessárias para efectuar a comunicação. SQL Server Books Online o Disponibilização de uma biblioteca completa com ajuda À utilização do SGBD e à comunicação com aplicações cliente. SQL Security Manager o Permite a definição das políticas gerais de segurança. Manuseamento dos grupos de utilizadores e das permissões associadas a cada um. SQL Enterprise Manager o Tal como se constatará de seguida esta é a aplicação fundamental na administração do SGBD SQL Server. Inclui mecanismos de manuseamento de devices, bases de dados, replicação e comunicação com cada base de dados. Possui um manancial de aplicações específicas para estes fins. 1 de 1
Definição de Devices Processo de Criação de Bases de Dados o Os devices são as unidades físicas (ficheiros) criados pelos SGBD SQl Server para armazenar efectivamente as bases de dados e informação associada. Devem ser criados antes da criação das bases de dados. o Podem ser de dois tipos: 1. Database Device. Tal como o nome indica servem para armazenar fisicamente a informação relativa a uma base de dados 2. Dump Device. São os devices utilizados para guardar a informação de registo (log) de acesso a uma base de dados. o Cada device pode conter mais que uma base de dados, embora tal não seja aconselhável. O SGBD cria uma unidade paralela de processamento (thread) por cada device definido. Se todas as bases de dados estiverem definidas em devices independentes a eficiência de cada uma será maior. Em bases de dados de maiores dimensões é inclusivamente efectuada a sua distribuição por diferentes devices. o Tal como praticamente todas as operações relativas ao SQL Server, podem ser criados de duas formas distintas: 1. Usando o SQL Entreprise Manager 2. Utilizando a sintaxe T-SQL. o Exercício: 1. Crie um novo device onde será guardada uma base de dados, utilizando para tal o SQL Enterprise Manager. Inicie a execução do Enterprise Manager Seleccione o servidor onde vai ser criado o device. o Tal como pode verificar, o SQL Enterprise Manager permite a comunicação com múltiplos servidores. o Clique no botão relativo a New Device, localizado na caixa de diálogo Manage Database Devices. Definição de Bases de Dados o Após a criação dos devices necessários, pode-se partir para a fase de criação das bases de dados. Neste contexto, podemos entender as bases de dados como as unidades lógicas onde o SQL Server coloca as tabelas e outros objectos a elas associados (índices, eventos, procedimentos e funções, etc...) o Todas as bases de dados têm associada a informação de registo de actividade: o Transaction Log. Por omissão, este é colocado no mesmo device que a base de dados, embora em situações reais e com complexidade e/ou volume de transações elevados devam ser colocados em devices diferentes. o Cada vez que se cria uma nova base de dados, o SQL Server utiliza um modelo genérico previamente construído (Base de dados Model ). Este modelo servirá como ponto de partida para a criação de todas as futuras bases de dados deste servidor: 1. Grupos e utilizadores Por omissão, o único utilizador criado é o administrador da base de dados. 2. Tabelas Não são incluídas tabela. 2 de 2
3. Vistas Não são incluídas vistas 4. Funções e Procedimentos Não são incluídos nem funções nem procedimentos (stored procedures) 5. Tipos de dados Não são incluídos. Todos os objectos que o administrador do SGBD adicionar nesta base de dados, ficarão automaticamente disponíveis sempre que for necessário criar uma nova base de dados. o Criação da Base de Dados 1. Utilizando o SQL Enterprise Manager Inicie a execução da aplicação SQL Entreprise Manager A partir do menu Manage Seleccionar Databases Clique no botão New Database Defina os parâmetros relativos à nova base de dados Clique no botão Criar. Base de Dados TempDB o Esta é uma base de dados especial utilizada pelo SGBD para guardar informação relativa a todos os pedidos dinâmicos efectuados. É um espaço de trabalho gerido pelo SGBD utilizado cada vez que é necessário espaço para armazenar temporariamente informação. Em situações como: 1. Criação de tabelas temporárias para efeitos de ordenação 2. manutenção de tabelas temporárias criadas explicitamente pelos utilizadores 3. Gestão de cursores 4. variáveis globais o É um factor de extrema importância relativamente à eficiência do SGBD. Por omissão vem com dimensão 2M, apesar de raramente este espaço ser suficiente. O SQL Server disponibiliza a particularidade única de colocar a base de dados Tempdb na memória RAM, o que pode constituir uma optimização significativa do SGBD. Para efectuar tal procedimento é necessário executar o procedimento sp_configure. Criação de relações o Tendo definidos os devices e as bases de dados é altura de efectuar a passagem do modelo lógico das bases de dados para o correspondente modelo físico. É nesta fase que é definida a maioria dos objectos relativos a cada base de dados: 1. Tabelas 2. Vistas 3. Procedimentos 4. Regras 5. Valores por omissão 6. Tipos de dados o Inicie a execução do SQL Enterprise Manager 3 de 3
1. Seleccione o servidor desejado 2. Seleccione a base de dados desejada 3. Seleccione o novo tipo de objecto Carregue com o botão direito do rato e será disponibilizada a opção de inserir um novo objecto Tipos de Dados o O SQl Server disponibiliza os seguintes tipos de dados: 1. int ou integer Guarda valores inteiros na game de 2^-31 até 2^31 2. smallint Guarda valores inteiros no intervalo de 32768 até 32767 3. tinyint Guarda valores inteiros positivos até 255 4. real Permite registar números reais com 7 casas de precisão, apesar da gama de valores susceptíveis de serem guardados variar entre plataformas. Utiliza 4 bytes por cada valor. 5. float(n) Guarda valores reais com precisão arbitrária. Quando o utilizador coloca um valor n <=7 é equivalente ao tipo anterior. 6. decimal(p,s) e numeric(p,s) Servem para registar valores reais com precisão fixa. 7. char(n) Guarda valores alfanuméricos com dimensão fixa 8. varchar(n) Serve para registar valores alfanuméricos com dimensão até n bytes. 9. datetime Guarda os valores relativos à data e hora com precisão até ao milisegundos 10. smalldatetime Guarda os valores relativos à data e hora com precisão até aos segundos 11. Timestamp Tipo de dados com valor automaticamente gerado pelo SQL Server e que serve para garantir a unicidade de todas as instancias de uma relação. 12. binary(n) Serve para registar informação em formato binário até 255 bytes. 13. varbbinary(n) Semelhante ao tipo anterior excepto no facto de permitir dimensão variável entre elementos. 14. text Utilizado para registar grandes quantidades de informação em formato de texto (Até 2GB aproximadamente) 15. image Semelhante ao tipo anterior, mas dedicado a informação binária. 4 de 4
16. money Regista valores monetários 17. sysname Tipo de dados no qual se baseiam o nome dos objectos existentes numa base de dados (Relações, atributos, etc...) Exercício o Analise o seguinte excerto de uma entrevista efectuada ao socio-gerente de uma loja de venda de discos: O meu sócio e eu possuímos uma lógica de venda de discos. Bem, venda de discos não deveria ser o nome uma vez que actualmente já só vendemos CD s s DVD s. Temos ainda em stock alguns álbuns em vinil para os coleccionadores. Independentemente do formato, tanto vendemos singles como álbuns. Cada item está tabelado e queremos manter diariamente informação acerca da quantidade em stock. Tanto vendemos a partir do titulo como do nome do artista. A informação acerca dos titulos vendidos tem que ser enviada semanalmente às entidades que elaboram os tops. Frequentemente aparecem clientes a perguntar por canções específicas. No caso dos singles é bastante simples, uma vez que é também normalmente o título do single (Apesar de alguns singles terem mais que uma canção). Os álbuns, claro, têm sempre mais que uma canção. Temos que fazer pesquisas por canção, por forma a permitir que os clientes saibam os títulos que englobam essas canções. o Proponha um modelo entidade / relacionamento que forneça uma resposta ao problema o Efectua a correspondente passagem para o modelo físico de dados com vista à implementação num SGBD MS SQLServer o Implemente o modelo físico no SGBD referido. 5 de 5