Tecnologia de Base de Dados

Slides:



Advertisements
Apresentações semelhantes
Introdução Gdes. bancos de dados: Concorrência: Transação:
Advertisements

Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
SQL Structured Query Language
Requisitos dos SGBD Recuperação/Tolerância a Falhas
Evolução dos SGBD’s (2ª Parte).
Aula 3 Requisitos dos SGBD
Banco de Dados SQL TRIGGERS (Gatilhos)
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados I 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Recuperação Como garantir a integridade da informação, em caso de avarias de HW ou SW forma de suportar a reposição de um estado consistente da informação.
Data Warehouse Tuning O que é um Data Warehouse? Índices Bitmap
Bloqueios partilhados
Gestão de transacções noções básicas modelo simples modelo elaborado
Trabalho de Desenvolvimento
Motor de Armazenamento
SGBD.
Algoritmos para Projeção eliminando Duplicatas
Gerenciamento de Banco de Dados
AULA 23 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Processamento de Transação
Banco de Dados Oracle AESO.
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
Folha de Cálculo TIC 10.
Query Tuning Lílian Simão Oliveira.
Gerenciamento de Transações - Introdução
Sistemas Operacionais
©Silberschatz, Korth and Sudarshan (modificado)5.1.1Database System Concepts Capítulo 5: Outras linguagens Query-by-Example (QBE) Datalog.
É um conjunto de registos dispostos numa estrutura regular que possibilita a reorganização dos mesmos e a produção de informação com a menor redundância.
Otimizador de consultas
Tuning Lílian Simão Oliveira.
ACESSO A BASE DE DADOS.
INTRODUÇÃO ÁS BASES DE DADOS
Data Replication and Resiliency Trabalho realizado por: Rui Ferreira Nº Eng. Informática.
Curso EFA de técnico de Informática e Sistemas
sintonia de banco de dados
Algoritmos de Processamento e Otimização de Consultas
Exercícios SGBD - CESPE
Controle de concorrência
Conceitos Programas Programação Linguagens de Programação SQL.
Transações Concorrentes
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Bancos de Dados Estrutura e Funcionamento de um SGBD
Query processing in main memory Vitor Silva. Bibliografia “Query Processing in Main Memory Database Management Systems” - Tobin J. Lehman & Michael J.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
Postgres Storage Tecnologia de Base de Dados Nuno Costa – Nº
©Silberschatz, Korth and Sudarshan (modificado)7.3.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
BD I / Processamento de Consultas Prof. Altigran Soares da Silva IComp/UFAM.
©Silberschatz, Korth and Sudarshan (Modificado)1.1Database System Concepts Capítulo 1: Introdução Função dos Sistemas de Bases de Dados Visão dos dados.
Controle de Concorrência
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
Algoritmos para o operador de Projeção AULA 19 – Parte II Profa. Sandra de Amo GBC053 – BCC.
PostGres - Transacções
Correcção do 4º Mini-Projecto AOBD Pergunta 1 /* T1: 1 transacção por hora */ BEGIN TRANSACTION select avg(lugares_disponíveis) from ( select.
AOBD 07/08 Mini-Projecto 2 Soluções. 1) Considere que existem três relações R1=(A,B,C), R2=(C,D) e R3=(D,E) com chaves primárias A, C e D, respectivamente.
Sumário 1 SQL Embutida 2 Processamento de Consultas
HSQL database engine Processamento e Optimização de Interrogações Vitor Silva.
PostgreSQL Índices Nuno Campos N.º Nuno Campos - N.º Índice Introdução Tipos de Índices – B-Tree – R-Tree – Hash – GiST Classes de Operadores.
RDBMS Tuning Pedro da Silva. Indice 1. Schema Tuning 1.1. Vertical Partitioning 1.1. Vertical Partitioning 1.2. Tunnig Denormalization 1.2. Tunnig Denormalization.
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Daniel Paulo Introdução Informações de uma tabela ou view podem ser encontradas de maneira mais rápida através da utilização.
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
SQL Server Lock Model.
José Antônio da Cunha IFRN Administração de Banco de Dados.
M Fernando Forte2005 TRANSACÇÕES HSQL - Hypersonic SQL TECNOLOGIA DE BASES DE DADOS.
Transcrição da apresentação:

Tecnologia de Base de Dados SQL Server Tecnologia de Base de Dados Nuno Costa – Nº 50099

Tópicos Introdução História Estrutura do SQL Server Armazenamento Tabelas/Índices Scan e read-ahead Views Tipos de Views Execução/Optimização de querys Acesso concorrente Save-points Updates Níveis de isolamento

História O SQL Server, originalmente designado Sysbase SQL Server, nasceu de uma parceria entre a Sybase, Ashton-Tate e a Microsoft, competindo directamente com a Oracle e IBM. A primeira versão resultante da parceria, denominada SQL Server 4.2 surgiu em 1989, para OS/2, sendo igual ao Sybase SQL Server 4.0 compatível com sistemas Unix e VMS. O primeiro lançamento do Microsoft SQL Server para NT surgiu em 1992, sendo que a primeira versão totalmente compatível com NT, sem qualquer ligação à Sybase, só apareceu com o Microsoft SQL Server v6.0 Por volta da altura em que o Windows NT saiu, já a Microsoft e Sybase tinham seguindo percursos distintos no que diz respeito ao desenho e implementação do seu próprio SGBD, tendo a Sybase mudado o nome do seu produto para Adaptive Server Enterprise. Ashton-Tate (Ashton-Tate Corporation) is a former US based software company best known for developing the popular dBASE database application. The company was bought by Borland in September 1991, who no longer sells any of their products. OpenVMS (Open Virtual Memory System or just VMS) is the name of a high-end computer server operating system that runs on the VAX and Alpha family of computers developed by Digital Equipment Corporation of Maynard, Massachusetts (now owned by Hewlett-Packard), and more recently on Hewlett-Packard systems built around Intel Itanium CPU. Adaptive Server Enterprise (ASE) is Sybase Corporation's flagship relational database management system product. A graphical user interface (or GUI, sometimes pronounced "gooey") is a method of interacting with a computer through a metaphor of direct manipulation of graphical images and widgets in addition to text. Fonte(s): http://en.wikipedia.org/wiki/MS-SQL

Armazenamento No SQL Server uma BD envolve uma colecção de ficheiros, contendo os dados e suportada por um único log de transacção De seguida irá ser mencionada a forma de armazenamento de tabelas e as várias formas de acesso a estas.

Armazenamento - Tabelas O SQL Server suporta dois tipos de organização: Heap – a localização de cada linha de uma tabela é determinada pelo sistema, não sendo possível ao utilizador especificá-la. Cada linha tem um identificador (RID), nunca sendo mudado excepto quando o ficheiro é comprimido ou a linha mudada. Clustered index – as linhas de uma tabela são guardadas numa B+ tree, ordenada pela chave do clustered index. Esta chave serve igualmente para identificar cada linha da tabela, podendo ser definida como nonunique e neste caso o SQL Server adiciona uma coluna oculta de forma a tornar a chave única.

Armazenamento – Scans e Read-Aheads A execução de querys no SQL Server poderá ser feita usando diferentes métodos de procura em tabelas e índices, como por exemplo scan total de tabelas vs filtered scans, forwards vs backward ou ordered vs unordered scans. Cada um destes tipos de scan usa um mecanismo de read-ahead que tenta estar sempre à frente da linha de execução da query de forma a reduzir o tempo de procura e idle do disco. O algoritmo read-ahead usa o conhecimento obtido partir do plano de execução da query de forma a assegurar-se que apenas é obtida a informação requisitada pela query. A quantidade de informação a ser lida pelo read-ahead é automaticamente ajustada de acordo com a dimensão do buffer, capacidade de I/O e ritmo ao qual os dados são “consumidos” na execução da query.

Views As views são tabelas virtuais cuja informação é definida através de um select As tabelas referenciadas por views são denominadas tabelas base Os resultados de uma View podem ser obtidas a partir de outras O optimizador de custos avalia uma View como se esta não existisse

Tipos de Views Indexed Views: têm como único propósito optimizar a performance na execução de querys que trabalham com grandes quantidades de informação, agregando-a sob a forma de sums, counts e averages. Partitioned Views: são usadas para particionar dados por vários tabelas, BD´s ou instâncias de SQL Server, distribuindo a carga computacional, sendo possível fazer a query a partir de vários servidores de BD. Exemplo no livro...

Execução/Optimização de querys Na execução de querys, o SQL Server tem baseia-se no protótipo de optimização Cascades. Os passos na execução de uma query são: Parsing/Binding – o optimizador procede ao parsing de cada statement da query e identifica as tabelas, nomes de colunas recorrendo ao catálogo. Constrói views de forma a gerar uma árvore de operadores e verifica na cache de procedimentos se já existe um plano de execução para aquela query, podendo assim evitar o processo de optimização. Através de algebra relacional, é elaborada uma combinação de operadores relacionais

Execução/Optimização de querys Simplificação/Optimização – o optimizador aplica uma série de regras à árvore de operadores de forma a obter uma forma simplicada. Durante este processo o optimizador calcula e recorre a estatísticas para calcular a cardinalidade (caso não existam estatísticas o optimizador gera-as antes de dar seguimento ao processo de optimização) Optimização cost-based – o optimizado explora (reordenação de operadores, como por exemplo joins) e implementa diferentes regras (merge join, hash join, etc) de forma a gerar alternativas e estimando o custo de execução de cada uma, escolhe o plano de execução mais favorável. Preparação do plano – com base no plano seleccionado, o optimizador cria as estruturas necessárias para a execução da query

Acesso concorrente e recuperação - Save-points O SQL Server suporta dois tipos de save-points de transacção: Statement – o save-point é definido no início da statement de modo a que caso esta falhe não haja rollback de toda a transacção Named - a aplicação define um save-point algures na transacção e caso haja rollback, a transacção irá ser retomada a partir do ponto definido.

Acesso concorrente e recuperação - opções de concorrência nos Updates O SQL Server tem duas opções no acesso concorrente, na operação de update: Optimista – parte do princípio que qualquer conflito de recursos que surga entre múltiplos utilizadores é improvável (mas não impossível) que aconteça e permite a execução de transacções sem recorrer a locks. Caso ocorra um conflito, a aplicação terá de ler a informação e tentar de novo. As aplicações detectam as mudanças comparando valores ou verificando um valor especial de versão, atribuído a cada linha.

Acesso concorrente e recuperação - opções de concorrência nos Updates(cont.) Pessimista (default) – sempre que necessário, o controlo de concorrência recorre a locks durante a execução de um transacção. Caso não ocorram deadlocks o sucesso da transacção é assegurado. Os locks podem ser feitos a vários tipos de recursos: RID – usado para lock de uma única linha numa tabela Chave – permite protecção de um determinado range key Página – tabela/Página de index de 8Kbyte Extent – grupo contíguo de 8 páginas de dados ou indíces Tabela – tabela inteira, incluindo indíces BD

Acesso concorrente e recuperação - Níveis de Isolamento Os níveis de isolamento suportados pelo SQL Server são: Read uncommited (dirty read) – nível mais baixo, onde as transacções são isoladas apenas ao ponto de garantir que não existem leituras de dados fisicamente corrumpidos. Read commited (nível default) – O SQL Server usa shared locks na leitura de informação e assegura que dados fisicamente corrumpidos nunca irão ser lidos bem como leitura de informação que foi alterada mas não foi commited, no entanto, não assegura que essa informação não irá ser alterada antes de a transacção acabar Repeatable read – não permite a ocorrência de dirty reads e nonrepeatable reads, ou seja, irá ser feito um lock a toda a informação requisitada por uma query, impossibilitando outras transacções de alterar esses dados, até que a transacção que fez o lock acabe. Serializable – nível mais alto de isolamento, onde cada transacção é totalmente isolada de outras que estejam a ser executadas

Bibliografia http://en.wikipedia.org/wiki/MS-SQL http://www.mssqlcity.com/Articles/Adm/SQL70Locks.htm Silberschatz, Korth, Sudarshan, “Database System Concepts”, Cap. 27, McGraw-Hill, 4th Edition

Fim