Desenvolvimento de Software

Propaganda
Desenvolvimento
de software
Aula 7
Fabiano Gonçalves
dos Santos
Sistemas de Banco de Dados
•
•
•
•
•
•
•
Redundância e inconsistência de dados:
Dificuldade de acesso a dados:
Isolamento de dados
Problemas de integridade
Problemas de atomicidade
Anomalias de acesso concorrente
Problemas de segurança
2
Sistema Gerenciador de Banco de
Dados (SGBD)
• A arquitetura de implementação de um
banco de dados costuma seguir um de três
padrões:
– Banco de dados embutido
– Banco de dados local
– Arquitetura cliente-servidor
3
Arquitetura cliente-servidor
4
Problemas decorrentes de armazenamento
de dados em arquivos de texto ou planilhas
ou relacionados a bancos de dados não
centralizados
•
•
•
•
•
•
•
•
•
Separação entre programas e dados
Armazenamento persistente de dados
Padronização de dados
Compartilhamento de dados
Controle de redundância e restrições de
integridade
Restrições de acesso
Eliminação de código redundante nas aplicações
para gerenciamento de dados e flexibilidade
Disponibilidade
Escalabilidade
5
Modelagem de Dados
• Entidades
– Pessoas
– Ideias
– Avaliações
• Atributos
• Tabelas
• Super-chave
• Chaves Candidatas
• Chaves Primárias
• Relacionamentos
• Esquema
6
Regras
• Regras de Entidades
• Regras de Relacionamentos
• Regras de Atributos
• Regras de Negócio
7
SQL Server
https://upload.wikimedia.org/
• O SQL Server é o sistema gerenciador de
bancos de dados da Microsoft
8
Tipos de dados do SQL Server
Numéricos exatos
bigint
-2^63 (-9.223.372.036.854.775.808) a 2^63-1 (9.223.372.036.854.775.807)
Ocupa 8 bytes de armazenamento
bit
Tipo de dados inteiro que pode armazenar os valores 1, 0 ou NULL.
decimal
Tipo numérico que pode ter precisão e escala definidos. Exemplo:
[Coluna_exemplo decimal(5,2)]
Assim, essa coluna armazenará valores como 123,00.
Precisão é o numero total de dígitos, e escala é a quantidade de dígitos após o ponto
decimal.
A quantidade de bytes ocupados depende de precisão e escala definidos.
int
-2^31 (-2.147.483.648) a 2^31-1 (2.147.483.647)
Ocupa 4 bytes de armazenamento
money
-922.337.203.685.477,5808 a 922.337.203.685.477,5807
Ocupa 8 bytes de armazenamento
numeric
É equivalente ao tipo decimal.
smallint
-2^15 (-32.768) a 2^15-1 (32.767)
Ocupa 2 bytes de armazenamento
smallmoney
-214.748,3648 a 214.748,3647
Ocupa 4 bytes de armazenamento
tinyint
0 a 255
Ocupa 1 byte de armazenamento
9
Tipos de dados do SQL Server
Numéricos exatos
bigint
-2^63 (-9.223.372.036.854.775.808) a 2^63-1 (9.223.372.036.854.775.807)
Ocupa 8 bytes de armazenamento
bit
Tipo de dados inteiro que pode armazenar os valores 1, 0 ou NULL.
decimal
Tipo numérico que pode ter precisão e escala definidos. Exemplo:
[Coluna_exemplo decimal(5,2)]
Assim, essa coluna armazenará valores como 123,00.
Precisão é o numero total de dígitos, e escala é a quantidade de dígitos após o ponto
decimal.
A quantidade de bytes ocupados depende de precisão e escala definidos.
int
-2^31 (-2.147.483.648) a 2^31-1 (2.147.483.647)
Ocupa 4 bytes de armazenamento
money
-922.337.203.685.477,5808 a 922.337.203.685.477,5807
Ocupa 8 bytes de armazenamento
numeric
É equivalente ao tipo decimal.
smallint
-2^15 (-32.768) a 2^15-1 (32.767)
Ocupa 2 bytes de armazenamento
smallmoney
-214.748,3648 a 214.748,3647
Ocupa 4 bytes de armazenamento
tinyint
0 a 255
Ocupa 1 byte de armazenamento
10
Tipos de dados do sql server
Numéricos aproximados
float
Ocupada até 8 bytes, representando valores:
[-1,79E+308 a -2,23E-308]; [0]; [2,23E-308 a 1,79E+308]
real
Ocupa 4 bytes, representando valores:
[-3,40E+38 a -1,18E-38]; [0]; [1,18E-38 a 3,40E+38]
11
Tipos de dados do sql server
Data e hora
Date
Define uma data no SQL Server.
Ocupa 3 bytes. Formato da literal: AAAA-MM-DD
Intervalo: 000-01-01 a 9999-12-31
datetime2
Define uma data combinada com uma hora do dia que se baseia em um período de 24
horas. Ocupa 6 bytes Formato da literal: YYYY-MM-DD hh:mm:ss[segundos fracionários]
Intervalo: 0001-01-01 a 9999-12-31
datetime
Define uma data combinada com uma hora do dia que inclui frações de segundos e se
baseia em um período de 24 horas. Ocupa 8 bytes
Intervalo de datas: Janeiro 1, 1753, a dezembro 31, 9999
Intervalo de horas: 00:00:00 a 23:59:59.997
datetimeoffset
Define a data combinada com uma hora de um dia que possui reconhecimento de fuso
horário e é baseada em um relógio de 24 horas. Ocupa 10 bytes.
Formato da literal: AAAA-MM-DD hh:mm:ss[. nnnnnnn] [{+|-}hh:mm]
Intervalo de datas: 0001-01-01 a 9999-12-31
Intervalo de horas: 00:00:00 a 23:59:59.9999999
smalldatetime
Define uma data que é combinada com uma hora do dia. Ocupa 4 bytes.
Intervalo de datas: 1900-01-01 a 2079-06-06
Intervalo de horas: 00:00:00 a 23:59:59
time
Define uma hora de um dia. A hora se encontra sem reconhecimento de fuso horário e se
baseia em um relógio de 24 horas. Formato da literal: hh:mm:ss[. nnnnnnn]
Intervalo: 00:00:00.0000000 a 23:59:59.9999999 Ocupa 5 bytes
12
Tipos de dados do sql server
Cadeias de caracteres
char
Dados de cadeia de caracteres não Unicode de comprimento fixo.
Uso: char(n), onde n é o tamanho da cadeia e pode ser de 0 a 8.000.
Número de bytes ocupados é igual a n.
text
Dados não Unicode de comprimento variável na página de código do servidor e
com um comprimento máximo de cadeia de caracteres de 2^31-1 (2.147.483.647).
varchar
Dados de cadeia de caracteres não Unicode de comprimento variável.
Uso: char(n), onde n é o tamanho máximo da cadeia e pode ser de 0 a 8.000.
Número de bytes ocupados é igual a n.
Cadeias de caracteres Unicode
nchar
Dados de cadeia de caracteres Unicode de comprimento fixo.
Uso: nchar(n), onde n é o tamanho da cadeia e pode ser de 0 a 4.000.
Número de bytes ocupados é igual a 2×n.
ntext
Dados Unicode de comprimento variável com um comprimento máximo de cadeia
de caracteres de 2^30 - 1 (1.073.741.823) bytes. O tamanho de armazenamento,
em bytes, é duas vezes o comprimento da cadeia de caracteres inserido.
nvarchar
Dados de cadeia de caracteres Unicode de comprimento variável.
Uso: nchar(n), onde n é o tamanho máximo da cadeia e pode ser de 0 a 4.000.
Número de bytes ocupados é igual a 2×n.
13
Tipos de dados do sql server
Cadeias de caracteres binárias
binary
Dados binários de comprimento fixo com um comprimento de n bytes, em que n é um valor de 1 a
8.000. O tamanho de armazenamento é n bytes.
Uso: binary(n)
image
Dados binários do comprimento variável de 0 a 2^31-1 (2.147.483.647) bytes.
varbinary
Dados binários de comprimento variável. n pode ser um valor de 1 a 8.000.
Uso: varbinary(n)
Outros tipos de dados
cursor
Um tipo de dados para parâmetros OUTPUT de variáveis ou procedimento armazenado que contém uma
referência a um cursor. Serve para manipulações do banco de dados.
hierarchyid
hierarchyid é um tipo de dados de tamanho variável. Usa-se hierarchyid para representar posição em uma
hierarquia, e assim é possível fazer uma relação hierárquica entre as entidades no BD.
sql_variant
Um tipo de dados que armazena valores de vários tipos de dados que o SQL Server. Ele é como um coringa
para dados.
table
É um tipo de dados especial que pode ser usado para armazenar um conjunto de resultados para
processamento posterior. table é utilizada principalmente para o armazenamento temporário de um conjunto
de linhas retornadas como o conjunto de resultados de uma função com valor de tabela.
timestamp
É um tipo de dados que expõe números binários exclusivos, gerados automaticamente, em um banco de
dados. Serve para controlar versões através de um tempo relativo.
uniqueidentifier
É um Identificador Único Global (GUID - Globally Unique IDentifier) de 16 bytes. Um número único
sequencialmente gerado.
xml
É o tipo de dados que armazena dados XML.
14
Desenvolvimento
de software
Atividade 7
Fabiano Gonçalves
dos Santos
15
Questão de concurso
O SQL Server possui uma linguagem
relacional denominada Transact-SQL, que é
um dialeto da linguagem SQL.
• Certo
• Errado
Ano: 2010
Banca: CESPE
Órgão: Banco da Amazônia
Prova: Técnico Científico - Tecnologia da
Informação
16
Questão de concurso
O SQL Server possui uma linguagem
relacional denominada Transact-SQL, que é
um dialeto da linguagem SQL.
• Certo
• Errado
Ano: 2010
Banca: CESPE
Órgão: Banco da Amazônia
Prova: Técnico Científico - Tecnologia da
Informação
17
Questão de concurso
O SQL Server oferece escalabilidade, mas
não pode implementar o data warehouse.
Certo
Errado
Ano: 2010
Banca: CESPE
Órgão: Banco da Amazônia
Prova: Técnico Científico - Tecnologia da
Informação
18
Questão de concurso
O SQL Server oferece escalabilidade, mas
não pode implementar o data warehouse.
Certo
Errado
Ano: 2010
Banca: CESPE
Órgão: Banco da Amazônia
Prova: Técnico Científico - Tecnologia da
Informação
19
Questão de concurso
O Microsoft SQL Server 2012 provê ferramentas
específicas para Business Intelligence. Uma dessas
ferramentas possibilita a apresentação e visualização
de dados (View), enquanto a outra auxilia o usuário no
acesso aos dados que são exibidos (Model). Essas
ferramentas são chamadas, respectivamente,
a) SQL Viewer - Data Miner
b) Data Explorer - Data Acquirer
c) Power View - Power Pivot.
d) MS Exhibition - SQL Query+
e) Data Show - Data Miner
Ano: 2013
Banca: FCC
Órgão: TRT - 15ª Região
Prova: Analista Judiciário Tecnologia da Informação
20
Questão de concurso
O Microsoft SQL Server 2012 provê ferramentas
específicas para Business Intelligence. Uma dessas
ferramentas possibilita a apresentação e visualização
de dados (View), enquanto a outra auxilia o usuário no
acesso aos dados que são exibidos (Model). Essas
ferramentas são chamadas, respectivamente,
a) SQL Viewer - Data Miner
b) Data Explorer - Data Acquirer
c) Power View - Power Pivot.
d) MS Exhibition - SQL Query+
e) Data Show - Data Miner
Ano: 2013
Banca: FCC
Órgão: TRT - 15ª Região
Prova: Analista Judiciário Tecnologia da Informação
21
Questão de concurso
Consultas podem ser criadas no SQL Server 2008,
com maior produtividade, baseadas em um modelo
de entidades de dados, ou na linguagem de
programação em vez de SQL, por meio da
linguagem
a) SSIS.
b) LINQ.
c) determinar os atributos da tabela.
d) Microsoft Visual C#.
Ano: 2010
e) Microsoft Visual Basic.
Banca: FCC
Órgão: DPE-SP
Prova: Agente de Defensoria Administrador de Banco de Dados
22
Questão de concurso
Consultas podem ser criadas no SQL Server 2008,
com maior produtividade, baseadas em um modelo
de entidades de dados, ou na linguagem de
programação em vez de SQL, por meio da
linguagem
a) SSIS.
b) LINQ.
c) determinar os atributos da tabela.
d) Microsoft Visual C#.
Ano: 2010
e) Microsoft Visual Basic.
Banca: FCC
Órgão: DPE-SP
Prova: Agente de Defensoria Administrador de Banco de Dados
23
Download