Baixe o app para aproveitar ainda mais
Prévia do material em texto
Faculdade Internacional de Curitiba Tema: Microsoft SQL Server Curitiba, 30 de Novembro de 2014 Faculdade Internacional de Curitiba Tema: Microsoft SQL Server Trabalho apresentado na matéria de SGBD pelos alunos: David Vinicius, Felipe Valentin, Lucas Skora e Magson Chostak solicitado pelo Professor Ademir Luiz Prado Curitiba, 30 de Novembro de 2014 Microsoft SQL Server O MS SQL Server é um SGBD - sistema gerenciador de Banco de dados relacional desenvolvido pela Microsoft. Foi criado em parceria com a Sybase em 1988 inicialmente para a plataforma OS/21. Esta parceria durou até 1994, com o lançamento da versão para Windows NT e desde então a Microsoft mantém a manutenção do produto. Como um Banco de dados, é um produto de software cuja principal função é a de armazenar e recuperar dados solicitados por outras aplicações de software seja aqueles no mesmo computador ou aqueles em execução em outro computador através de uma rede (incluindo a Internet). Há pelo menos uma dúzia de diferentes edições do Microsoft SQL Server destinado a públicos diferentes e para diferentes cargas de trabalho (variando de pequenas aplicações que armazenam e recuperam dados no mesmo computador, a milhões de usuários e computadores que acessam grandes quantidades de dados a partir da Internet ao mesmo tempo). Suas linguagens de consulta primárias são T-SQL e ANSI SQL. Transact-SQL Transact-SQL (T-SQL) é propriedade da Microsoft e Sybase para a extensão SQL. A implementação da Microsoft foi emitida juntamente com a Microsoft SQL Server. A Sybase usa a linguagem no seu Adaptive Server Enterprise (ASE), que é o sucessor da Sybase SQL Server. O Transact-SQL evolui as seguintes características do SQL: Controle do fluxo da língua Variáveis Locais Várias funções de suporte ao processamento de strings, datas, matemáticas, etc. Melhoramento para a declaração DELETE e UPDATE SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é a linguagem de pesquisa declarativa padrão para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projetoSystem R, que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por E. F. Codd. O nome original da linguagem era SEQUEL, acrônimo para "Structured English Query Language" (Linguagem de Consulta Estruturada, em Inglês)1 , vindo daí o facto de, até hoje, a sigla, em inglês, ser comumente pronunciada "síquel" ao invés de "és-kiú-él", letra a letra. No entanto, em português, a pronúncia mais corrente é a letra a letra: "ésse-quê-éle". A linguagem é 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. Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vários "dialectos" desenvolvidos por outros produtores. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expressões regulares de emparelhamento,queries recursivas e gatilhos (triggers). Também foi feita uma adição controversa de tipos não-escalados e algumas características de orientação a objeto. O SQL:2003 introduz características relacionadas ao XML, sequências padronizadas e colunas com valores de auto-generalização (inclusive colunas-identidade). Tal como dito anteriormente, embora padronizado pela ANSI e ISO, possui muitas variações e extensões produzidos pelos diferentes fabricantes de sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma para plataforma sem mudanças estruturais principais. Outra aproximação é permitir para código de idioma procedural ser embutido e interagir com o banco de dados. Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o PostgreSQL permite que funções sejam escritas em Perl, Tcl, ou C, entre outras linguagens. Sistemas de Banco de Dados que usam SQL Sybase Advantage Database Server Apache Derby Caché DB2 Firebird HSQLDB (banco de dados implementado em Java) IDMS (banco de dados hierárquico) IMS (banco de dados hierárquico) Informix Ingres InterBase Microsoft Access Microsoft SQL Server MySQL Oracle PointBase Micro (banco de dados relacional implementado em Java) PostgreSQL SQLite LiteBase Mobile (dedicado à plataformas móveis como: Palm OS, Pocket PC, WinCE, Symbian) Sybase Adaptive Server Enterprise Teradata (primeiro RDBMS com arquitetura paralela do mercado) Algumas funções do MS-SQL Server: Trigger Stored procedure SQL User Function Extended Stored Procedure Gatilho (banco de dados) Gatilho ou trigger é um recurso de programação executado sempre que o evento associado ocorrer. Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele. É muito utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras. Um bom exemplo é um gatilho criado para controle de quem alterou a tabela, nesse caso, quando a alteração for efetuada, o gatilho é "disparado" e grava em uma tabelade histórico de alteração, o usuário e data/hora da alteração. Em SQL, para se criar um trigger utiliza-se do CREATE TRIGGER, e para removê-lo deve-se usar DROP TRIGGER. Um gatilho típico é composto de três componentes, que seguem o Modelo: evento - condição - ação. Exemplo: (MS-SQL Server) CREATE TRIGGER nome_do_gatilho ON dono.Nome_da_tabela FOR INSERT (ou SELECT ou UPDATE ou DELETE) AS Codigo para execução Versões do SGBD escolhido – david Requisitos de Sistema Operacional e Hardware para instalação da última versão do SGBD escolhido –david Vantagem do SGBD Software de gestão de alto nível O Microsoft SQL Server inclui softwares de gestão de banco de dados tanto para nível profissional quanto empresarial. Alguns concorrentes, como o MySQL, desenvolveram softwares semelhantes nos últimos anos, mas o SQL Server é mais fácil de usar e tem mais recursos. Os triggers, por exemplo, têm total suporte nos produtos da Microsoft. No caso do MySQL, esse comendo foi introduzido recentemente, mas ainda não são totalmente suportados. O software oferecido pela Microsoft também oferece estreita integração com o framework .NET, o que não é o caso de produtos concorrentes. Excelente suporte para recuperação de dados Dados corrompidos são sempre uma preocupação quando ocorre uma queda de energia ou desligamentos incorretos. O Microsoft SQL Server tem uma série de características que promovem a restauração e recuperação desses dados. Embora tabelas individuais não possam ser copiadas ou restauradas, existem opções completas de restauração de banco de dados que podem ser úteis nesses casos. Por meio do uso de arquivos de log, cache e backups, o produto da Microsoft tranquiliza o usuário com suas opções para recuperação de dados na ocorrência de algum desastre. Desvantagem do SGBD Custo Uma das principais desvantagens de se utilizar o Microsoft SQL Server em vez de um sistema de gerenciamento de banco de dados relacional alternativo é que as opções de licenciamento são muito caras. Apesar do uso do software para fins educacionais ou de desenvolvimento ser gratuito,qualquer tipo de uso comercial resulta em uma taxa de licenciamento. Para o SQL Server 2008, por exemplo, o SQL Server Standard Edition custa R$17,28 por processador. A edição do SQL Server Datacenter é R$132,53 por processador, de acordo com o site da Microsoft. Compatibilidade limitada O Microsoft SQL Server só é projetado para rodar em servidores baseados no Windows. Por inúmeras razões, incluindo custos de licenciamento e preocupações com a segurança, desenvolvedores muitas vezes optam por hospedar seus sites em máquinas baseadas em Unix, o que inviabiliza o uso do SQL Server. Produtos concorrentes, pelo contrário, já possuem uma maior compatibilidade com outras plataformas. O MySQL, por exemplo, roda em todas as principais plataformas. Além da impossibilidade de rodar em plataformas não Windows, o produto da Microsoft também pode encontrar problemas de compatibilidade em relação a interação com os aplicativos que estão sendo executados em outras plataformas. Fermentas administrativa Vamos supor que você fez uma instalação completa do seu SQL Server, então temos as seguintes opções: Import And Export Data SQL Server Business Intelligence Studio SQL Server Management Studio Analysis Services Deployment Wizard Configuration Tools Reporting Services Configuration Manager SQL Server Configuration Manager SQL Server Error And Usage Reporting SQL Server Installation Center Documentation And Tutorials Microsoft SQL Server Samples Online SQL Server Books Online SQL Server Tutorials Integration Services Data Profile Viewer Execute Package Utility Performance Tools Database Engine Tuning Advisor SQL Server Profiler Procedimento armazenado Procedimento armazenado ou Stored Procedure é uma coleção de comandos em SQL para dispensamento de Banco de dados. Encapsula tarefas repetitivas, aceita parâmetros de entrada e retorna um valor de status (para indicar aceitação ou falha na execução). O procedimento armazenado pode reduzir o tráfego na rede, visto que os comandos são executados diretamente no servidor. Além de melhorar a performance, criar mecanismos de segurança entre a manipulação dos dados do Banco de Dados. Exemplo: (MS-SQL Server) Create procedure busca @nomedebusca varchar (50) As select nome1, nome2 from nome_da_tabela where nome = @nomedebusca Características dos Procedimentos no MS-SQL Server Procedimentos do Sistema - Armazenadas no banco de dados Master, são identificadas com o prefixo sp_, executam tarefas administrativas, podem ser executadas em qualquer banco de dados. Procedimentos Locais - São criadas em bancos de dados do usuário. Procedimentos Temporárias - Locais devem começar com #. Globais devem começar com ##. Procedures Remotas - Apenas por compatibilidade. No seu lugar se usa Queries distribuídas. Procedimentos Estendidas - São implementadas como DLL e executadas fora do ambiente do SQL Server. Identificadas com o prefixo xp_. SQL Server: Funções de usuário – (User Functions) No Sql Server 2000 um dos recursos que a nova versão apresentou foi as user functions, ou funções de usuário, o usuário cria suas próprias funções para auxiliar na busca da informação. As user functions podem receber um ou mais parâmetros, e não aceitam parâmetro de output. As funções de usuário podem ser de três tipos Scalar Function Multi-statement Table-valued Function In-Line Table-valued Function A criação de uma user function é similar à criação de uma stored procedure ou uma view. As users functions podem ser criadas com schemabinding que colam a função a outro objeto, depois do schemabinding só é possível acessar o objeto em duas partes dbo.nome, o schemabinding permite uma integridade, não deixando apagar o objeto sem antes retirar o schemabinding. As user functions precisam de permissões de execute para poderem funcionar, e permissão de CREATE, ALTER ou DROP como qualquer outro objeto, como as user functions podem retornar tabelas é preciso ter acesso também de REFERENCES, ou seja, este tipo de permissão que é dada a tabelas também permite que eu acesse tabelas que são referenciadas através de Foreign Keys, que na verdade são parte da informação que está em outra tabela. Scalar Function As funções scalares são bem parecidas com as bult-in functions, que existem no banco de dados como a Getdate(), e este tipo de função retorna apenas um parâmetro, como o exemplo abaixo eu montei uma scalar function que retorna o endereço mais o código postal. Multi-statement Table-valued Function Como o próprio nome já diz a Multi-Statement é utilizada para lógicas mais complexas que costumam conter condicional, outra diferença considerável também é que este tipo de função retorna uma tabela, e o que é bastante interessante que eu mencionei na minha coluna anterior sobre integridade disse que uma tabela sem chave primária é uma tabela sem integridade de domínio, e esta sujeita a erros pertinentes a esta falta de integridade. Aqui é possível definir chave primária, identity etc, no retorno da tabela, deixando bem claro que este tipo de função retorna dados confiáveis e íntegros. In-Line Table-valued Function As in-lines functions são muito utilizadas para parametrizar views, este tipo de função não requer BEGIN, END na criação do seu corpo, e também dá muita performance quando usada em views indexadas, o retorno deste tipo de função também é uma tabela, ma costuma-se criar o esquema em momento de execução. Extended Stored Procedure Extended Stored Procedure permite a integração de programas escritos em C/C++ e o Microsoft SQL Server. As extended stored procedures ou xps após instaladas no servidor são invocadas normalmente com a mesma sintaxe de Stored Procedures escritas em Transact SQL. Existem diversas xps distribuidas juntamente com Microsoft SQL Server, elas são instaladas no banco de dados master e começam com o prefixo xp_. Ferramentas de desenvolvimento SQL Server Existem várias ferramentas de desenvolvimento SQL Server disponíveis que fornecem os desenvolvedores de SQL uma maneira mais fácil e mais rápido para acessar bancos de dados e realizar as principais funções . Essas ferramentas ajudam os desenvolvedores com consultas de administração de banco de dados , extração de dados e construção de SQL. EMS SQL Management Studio EMS SQL Management Studio oferece um amplo conjunto de ferramentas para administração de banco de dados mais eficiente e desenvolvimento. As funções incluem gerenciamento de objetos de banco de dados e manipulação de migração de dados e extração. Várias ferramentas de ajudar com a construção de consulta. EMS Studio tem uma qualidade, interface amigável . Este software benefícios que os profissionais em funções de DBA , desenvolvedor ou analista de negócios . Toad for SQL Server Toad for SQL Server também oferece um conjunto de ferramentas para administradores de banco de dados e desenvolvedores. A interface gráfica de fácil utilização auxilia na avaliação rápida de dados e gerenciamento de objetos de banco de dados. O editor permite aos desenvolvedores criar , modificar , executar e salvar consultas , bem como visualizar e editar dados. A função de auto- corrige rapidamente substituir palavras com erros ortográficos ou substitutos termos, quando necessário. Modelos de conclusão Código ajudar os desenvolvedores rapidamente inserir instruções SQL , ea função trechos de código ajuda a inserir a sintaxe correta. Toad oferece uma interface fácil de usar que permite ao usuário visualizar , excluir, editar e inserir dados em tabelas. Também avançou classificação e filtragem capacidades. Rapid SQL para SQL Server Rapid SQL para SQL Server ajuda os desenvolvedores a criar o código SQL aerodinâmico em um tempo mais curto quadro. Os usuários podem criar rapidamente consultas em um ambiente simplificado. O software oferece a capacidade de gerenciar os objetos de banco de dados e funcionalidades de gerenciamento de projeto . Ele fornece uma plataforma que torna mais fácil para as equipesde desenvolvimento de compartilhar recursos e colaborar em projetos . SQL Server Data Tools (SSDT) O SSDT (SQL Server Data Tools) transforma o desenvolvimento de bancos de dados com a introdução de um modelo declarativo ubíquo que abrange todas as fases de desenvolvimento e manutenção/atualização do banco de dados no Visual Studio. Você pode usar os recursos de design Transact-SQL do SSDT para compilar, depurar, manter e refatorar bancos de dados. Pode trabalhar com um projeto de banco de dados ou diretamente com uma instância de banco de dados conectada ou externa. O Pesquisador de Objetos do SQL Server no Visual Studio oferece uma exibição de seus objetos de banco de dados semelhante ao SQL Server Management Studio. O Pesquisador de Objetos do SQL Server permite que você realize tarefas leves de administração e design de bancos de dados. Você pode facilmente criar, editar, renomear e excluir tabelas, procedimentos armazenados, tipos e funções. Também pode editar dados de tabela, comparar esquemas ou executar consultas usando menus contextuais direto do Pesquisador de Objetos do SQL Server. Os desenvolvedores podem usar as ferramentas familiares do Visual Studio para o desenvolvimento de bancos de dados. Exemplo dessas ferramentas: navegação de códigos, IntelliSense, suporte a idioma comparável ao que está disponível para C# e Visual Basic, validação específica de plataforma, depuração e edição declarativa no editor Transact-SQL. O SSDT também fornece um Designer de Tabela visual para criar e editar tabelas em projetos de banco de dados ou instâncias de banco de dados conectadas. Enquanto está trabalhando nos seus projetos de banco de dados em um ambiente de equipe, você pode usar o controle de versão para todos os arquivos. No momento de publicar seu projeto, você poderá fazê-lo em todas as plataformas SQL com suporte, inclusive Banco de Dados SQL e Microsoft SQL Server 2012. O recurso de validação de plataformas SSDT assegura que seus scripts funcionarão no destino especificado. O SSDT também inclui tipos de projetos especiais e ferramentas para desenvolver soluções de SQL Server 2012 Analysis Services, Reporting Services e Integration Services Business Intelligence (BI) (anteriormente conhecido como Business Intelligence Development Studio). A ajuda para desenvolver soluções de BI não é fornecida aqui, mas como parte dos Manuais Online do SQL Server 2012. Os tópicos e seções a seguir discutem como o SSDT pode ajudar no desenvolvimento de bancos de dados. Tópicos de instruções são incluídos para ajudá-lo no processo de conclusão das tarefas do seu projeto de banco de dados. Essas tarefas, escritas na forma de tutorial e concluídas em ordem, usam a Northwind Traders, uma empresa fictícia que importa e exporta comidas especializadas do mundo todo. Ferramentas de programação Componentes e ferramentas do Reporting Services O SQL Server 2008 Reporting Services fornece componentes de processo, ferramentas e interfaces de programação para desenvolver, gerenciar e usar relatórios avançados. Visão geral de ferramentas e utilitários (Integration Services) O SQL Server 2008 Integration Services (SSIS) fornece ferramentas completas de criação e gerenciamento de pacotes SSIS, como o Designer SSIS, o Construtor de Consultas, o Construtor de Expressões e vários utilitários de prompt de comando. SQL Server Configuration Manager O SQL Server Configuration Manager é uma ferramenta para gerenciar os serviços associados ao SQL Server, configurar os protocolos de rede usados pelo SQL Server e administrar a configuração de conectividade de rede de computadores cliente do SQL Server. Referência do SQL Server Profiler O SQL Server Profiler é uma ferramenta que captura eventos do SQL Server de uma instância do Mecanismo de Banco de Dados. Os eventos são salvos em um arquivo de rastreamento que posteriormente pode ser analisado ou utilizado para reproduzir uma série específica de etapas na tentativa de diagnosticar um problema. Visão geral do Orientador de Otimização do Mecanismo de Banco de Dados O Orientador de Otimização do Mecanismo de Banco de Dados do SQL Server ajuda você a selecionar e criar um conjunto de índices otimizados, exibições indexadas e partições sem necessitar de conhecimentos avançados da estrutura do banco de dados ou dos internos do SQL Server. Utilitários do prompt de comando O Mecanismo de Banco de Dados do SQL Server fornece ferramentas adicionais que podem ser executadas no prompt de comando. Empresas que utilizamo SQL Server Federação das Industrias do Estado do Paraná (FIEP) O sistema FIEP utiliza o SGBD na sua versão 2005, a FIEP tem previsão de atualização progressiva da versão para a 2014 no ano de 2016. Bolsa de valores do estado de São Paulo ( BOVESPA) A BOVESPA utiliza o SGBD na sua versão 2005, não encontramos informações sobre futuras atualizações. Abaixo outras empresas que utilizam o SQL Server: Vivo McLaren System Itaú Amil Bwin Siemens Samsung ANEEL Marcolpolo Fnac Suzano Kimberly-Clack Entre outras Referencias Bibliográficas http://www.microsoft.com/brasil/servidores/sql/2005/default.mspx http://www.tuliorosa.com.br/index.php/archives/144 http://technet.microsoft.com/pt-br/library/bb500397(v=sql.105).aspx Ron Soukup/Jim Gray (Microsoft), Desvendando o Microsoft SQL Server 6.5, 2a. Edição, Um Guia para o desenvolvimento de design, arquitetura e implementação, 1998, Editora Campus, Microsoft Press, ISBN 85-352-0315-X. Wikipédia, a enciclopédia livre. Livro: Transact-SQL Guia de Referência, Série Ramalho, Autor: Jose Antonio Alves Ramalho. Editora Berkeley. ISBN 85-7251-587-9 Chamberlin, D. D., Astrahan, M. M., Blasgen, M. W., Gray, J. N., King, W. F., Lindsay, B. G., Lorie, R., Mehl, J. W., Price, T. G., Putzolu, F., Selinger, P. G., Schkolnick, M., Slutz, D. R., Traiger, I. L., Wade, B. W., and Yost, R. A. 1981. A history and evaluation of System R. Commun. ACM 24, 10 (Oct. 1981), 632-646.http://doi.acm.org/10.1145/358769.358784 Navathe, S. B. and Elmasri, R.. Sistemas de banco de dados – Fundamentos e aplicações. LTC: 2002. Programando em SQL - Profa. Késsia Marchi (http://kessia.blogs.unipar.br/files/2009/04/trigger.pdf) Linha de Código: http://www.linhadecodigo.com.br/artigo/687/sql-server-funcoes-de-usuario-user-functions.aspx#ixzz3INk16KRR http://www.devmedia.com.br/conhecendo-um-pouco-sobre-o-management-studio-no-sql-server-2008/25504 http://www.ehow.com.br/vantagens-desvantagens-microsoft-sql-lista_224636/
Compartilhar