SlideShare una empresa de Scribd logo
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114
Bases de Datos
Con
SQL Server
Por Elena López
Patrocinado por
http://www.bdconsql.com/
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114
Consideraciones
para un buen diseño
Lógido de Bases
de Datos
Por Elena López
Patrocinado por
http://www.bdconsql.com/
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114http://www.bdconsql.com/
•Aisle los servicios de bases de datos: divide y vencerás.
•Documente las bases de datos y sus objetos.
•Cumplir las reglas de normalización/desnormalización.
CONSIDERACIONES
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114http://www.bdconsql.com/
CONSIDERACIONES
Crear un estándar de nomenclatura para nombrar los objetos:
•Evitar espacios, abreviaturas y el uso del guión bajo para nombrar objetos; por
un tema de estética y legibilidad se recomienda intercalar mayúsculas y
minúsculas (ejemplo InsertarCliente en lugar de Insertar_Cliente)
•Elegir si utilizar plural o singular para los nombres de las tablas, nunca ambos a
la vez.
•Utilizar nombres estandarizados para las columnas en todas las tablas donde
se hace referencia a las mismas, por ejemplo ClienteID, PaisID, etc.
|
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114http://www.bdconsql.com/
CONSIDERACIONES
• No nombrar objetos acorde a su naturaleza sino a su función; me refiero a la
práctica de utilizar prefijos y/o sufijos para nombrarlos (ejemplo: tbl para las
tablas, v_ para las vistas, fn para funciones, etc.). MSSQL por si solo distingue
bastante bien entre los tipos de objetos.
• Evitar el uso del prefijo sp_ para nombrar los procedimientos almacenados. En
MSSQL este prefijo es utilizado para los procedimientos del sistema por ende el
manejador iría al esquema del sistema antes de ejecutar su Stored procedure,
creando latencia en su ejecución.
• No incluir dentro del nombre el módulo o sistema al que pertenece el objeto, para
esto podemos siempre hacer uso de los esquemas.
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114http://www.bdconsql.com/
CONSIDERACIONES
• Uilice encriptación para las columnas que almacenan contraseñas, números de tarjetas de créditos y otros
datos de naturaleza sensible. Estos valores solo deben ser desencriptados a través de las aplicaciones y no
por Base de datos.
• Utilice los tipos de datos de forma correcta:
• Bit para booleanos
• Char para alfanuméricos de longitud fija
• Varchar para alfanuméricos de longitud variable
• Date para cuando solo nos interese la fecha y no la hora
• Time para cuando solo nos interese la hora y no la fecha
• SmallDateTime para almacenar fecha y hora en rangos menores
• DateTime para almacenar fecha y hora en rangos mayores al anterior
• Etc.
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114http://www.bdconsql.com/
CONSIDERACIONES
• Utilice columnas de tipo entero (tinyint, int, bigint…) para las claves primarias de cada tabla, preferiblemente
con valores autoincremento. Esto hará las relaciones más ágiles. Es importarte recordar que esta práctica por
si sola no garantiza la integridad de los datos.
• Cada tabla debe tener una restricción de registro único (unique constraint), con una o varias columnas que
garanticen la ausencia de datos redundantes.
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114http://www.bdconsql.com/
CONSIDERACIONES
Para ejemplificar los dos últimos puntos, tomemos como referencia la tabla de clientes de una línea aérea:
En nuestro ejemplo hemos creado la tabla Clientes, cuya clave primaria
es la columna ClienteID (identificada con una llave amarilla), un valor
entero autoincremental de 1 en 1 y que no garantiza que el cliente con
un pasaporte número A22222 se registre dos veces dentro de nuestros
datos (generando además de inconsistencia, falta de integridad).
Para evitar esto entonces creamos una restricción de integridad para la
columna que nos garantiza que cada dato sea único:
ALTER TABLE dbo.Clientes
ADD CONSTRAINT ucPasaporte UNIQUE (Pasaporte)
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114http://www.bdconsql.com/
CONSIDERACIONES
• Cree restricciones de integridad para aquellas columnas que lo requieran. La integridad de los datos debe ser
siempre parte de la misión crítica del DBA y no debe ser dejada al azar ni a los aplicativos. Incluya siempre
claves primarias, relaciones/claves foráneas, check constraints, null/not null, etc.
• Evite el uso de “Select *” en las consultas. Es una de las malas prácticas más comunes dentro de la escritura
de queries. Para un mejor rendimiento se recomienda seleccionar solo las columnas necesarias separadas por
coma:
SELECT Pasaporte, PrimerNombre, Apellido
FROM dbo.Clientes
Bases de Datos con MSSQL - Por Elena López - ingelenalopez@gmail.com - 1.809.481.3114http://www.bdconsql.com/
CONSIDERACIONES
• Otorgue a cada usuario el rol y los permisos correspondientes; evite propagar el rol de administración a
usuarios que no necesitan dicho acceso.
• Particione las tablas con gran volumen de datos, de preferencia históricos. Con esto incrementamos el tiempo
de respuesta de las consultas.
• No almacene objetos binarios (BLOB) dentro de las tablas transaccionales: crearía lentitud en las consultas;
haga uso del FileStream o de las FilesTables (a partir de la versión 2016) que brinda el manejador MSSQL.

Más contenido relacionado

PPTX
1. introduccion a las Bases de datos
Elena Lopez
 
PPTX
1. introduccion las Bases de Datos
Elena Lopez
 
DOC
Diseño de bases de datos
rulo182
 
PPTX
Diapositivas De Tablas y Base Datos
Jose Erlin Rojas Cercado
 
PPT
Conceptos_de_Bases_de_DatosLLLLLLLLLLLLLLL.ppt
Angel Tello
 
PPT
fffffffffffffffffffffffffsssssssssssssssffffffffff.ppt
SANTOS400018
 
PPT
BASES DE DATOS Conceptos_de_Bases_de_Datos.ppt
JesseniaMurcia1
 
PPT
fffffffffffffffffffffhdfhfghfghfffffffffffffff.ppt
SANTOS400018
 
1. introduccion a las Bases de datos
Elena Lopez
 
1. introduccion las Bases de Datos
Elena Lopez
 
Diseño de bases de datos
rulo182
 
Diapositivas De Tablas y Base Datos
Jose Erlin Rojas Cercado
 
Conceptos_de_Bases_de_DatosLLLLLLLLLLLLLLL.ppt
Angel Tello
 
fffffffffffffffffffffffffsssssssssssssssffffffffff.ppt
SANTOS400018
 
BASES DE DATOS Conceptos_de_Bases_de_Datos.ppt
JesseniaMurcia1
 
fffffffffffffffffffffhdfhfghfghfffffffffffffff.ppt
SANTOS400018
 

Similar a Consideraciones para un buen diseño lógico de base de datos (20)

PPTX
Conceptos Base de Datos.pptx
Lenon03
 
PPT
Conceptos de bases_de_datos
MichelGarcia69
 
PPT
Conceptos_de_Bases_de_Datos.ppt
ssuser948499
 
PPT
Conceptos_de_Bases_de_Datos.ppt
Lenon03
 
PPTX
Yossy
Fye19
 
DOCX
SQL SERVER
Omar Salazar
 
PDF
Sql tips 04_best_practices
Adrian Miranda
 
PPTX
Diseño de una base de datos
Maite De la flor Céspedes Martínez
 
PDF
Introduccion bd
Marcela Tapia
 
PPT
Conceptos_de_Bases_de_Datos 20-03-2023.ppt
NiltonValladolidCamp
 
PPTX
B Ase De Datos3
peterparquer
 
PDF
Curso sql server_administracion
Salvador Ramos
 
DOC
MySQL BD .doc
PaolaBarcala
 
PDF
Material de Clases TP N° 1 - Bases de Datos - Introducción, Tablas y Relaciones
mnllorente
 
PPTX
Joce celestino
Sofia1102
 
PPTX
Database fundamental itprosdc_chapter2
Julián Castiblanco
 
PPT
Conceptos_de_Bases_de_Datos_20220427100402.ppt
JosueEsquina
 
PPTX
BASE DE DATOS
Sofia Contreras
 
PPTX
Joce celestino
Sofia1102
 
PDF
Tema1
Shadai Black
 
Conceptos Base de Datos.pptx
Lenon03
 
Conceptos de bases_de_datos
MichelGarcia69
 
Conceptos_de_Bases_de_Datos.ppt
ssuser948499
 
Conceptos_de_Bases_de_Datos.ppt
Lenon03
 
Yossy
Fye19
 
SQL SERVER
Omar Salazar
 
Sql tips 04_best_practices
Adrian Miranda
 
Diseño de una base de datos
Maite De la flor Céspedes Martínez
 
Introduccion bd
Marcela Tapia
 
Conceptos_de_Bases_de_Datos 20-03-2023.ppt
NiltonValladolidCamp
 
B Ase De Datos3
peterparquer
 
Curso sql server_administracion
Salvador Ramos
 
MySQL BD .doc
PaolaBarcala
 
Material de Clases TP N° 1 - Bases de Datos - Introducción, Tablas y Relaciones
mnllorente
 
Joce celestino
Sofia1102
 
Database fundamental itprosdc_chapter2
Julián Castiblanco
 
Conceptos_de_Bases_de_Datos_20220427100402.ppt
JosueEsquina
 
BASE DE DATOS
Sofia Contreras
 
Joce celestino
Sofia1102
 
Publicidad

Más de Elena Lopez (10)

PPTX
Data driven decision making
Elena Lopez
 
PPTX
Data pipeline
Elena Lopez
 
PPTX
Modern data warehouse
Elena Lopez
 
PPTX
Arquitectura de Datos en Azure
Elena Lopez
 
PPTX
Data analytics on Azure
Elena Lopez
 
PPTX
El valor de los datos 3.0
Elena Lopez
 
PPTX
Gestión de Proyectos de Ciencia de Datos
Elena Lopez
 
PPTX
Analitica avanzada
Elena Lopez
 
PPTX
Inteligencia de negocios - tercera parte
Elena Lopez
 
PPTX
El valor de los datos
Elena Lopez
 
Data driven decision making
Elena Lopez
 
Data pipeline
Elena Lopez
 
Modern data warehouse
Elena Lopez
 
Arquitectura de Datos en Azure
Elena Lopez
 
Data analytics on Azure
Elena Lopez
 
El valor de los datos 3.0
Elena Lopez
 
Gestión de Proyectos de Ciencia de Datos
Elena Lopez
 
Analitica avanzada
Elena Lopez
 
Inteligencia de negocios - tercera parte
Elena Lopez
 
El valor de los datos
Elena Lopez
 
Publicidad

Último (20)

PDF
Conceptos básicos de programación - Paula Obando
edeppaulaobando
 
PPTX
Customer Events - DeepRacer L200_ES.pptx
jcoronel
 
PDF
Trabajo grupal segundo periodo Tecnología .pdf
edepemanuelflechas
 
DOCX
#USOLASTICPARA Proyecto integrador M1S4PI JuarezGonzalez _Maria_M1S4PI.doc...
MariaSusanaJuarezGon
 
PDF
Tecnología. Programación pseint 10-7 Sol Riaño Támara
edepsolriano
 
PDF
Trabajo Tecnología #2 Periodo (1).pdf ajdj
colgess2
 
PDF
Las tics en la sociedad como a cambiado nuestro entorno.pdf
gomezpereza332
 
PPTX
ExcelTablasDinamicas02nivelintermedio.pptx
fernandoloza823
 
PDF
DIAGRAMA DE PARETO M. Camila Duque Loaiz
MariacamilaDuqueloai
 
PPTX
Normas de la sala de informática Segundo
SilviaFernandaCesped
 
PDF
excel.pdf valentinamueses111 trabajo tecnologia
4zz5vkthyk
 
PDF
DIAGRAMA DE PARETO M Camila Duque Loaiza
MariacamilaDuqueloai
 
PDF
El candado imposible de abrir | Seguridad máxima explicada - Revista Técnica ...
Cerrajero 365 Valencia
 
PPTX
Intro to 3D Printing Credit 1(Span).pptx
rlink3
 
PDF
Problema de pareto resuelto iandanielpdf
IanDanielGiraldoRami
 
PDF
Conceptos Básicos de programación- Paula Obando
edeppaulaobando
 
PPTX
INTRODUCCION A BASE DE DATOS NIVELBASICO 6
Cangrilg
 
PDF
Distribución de frecuencias y diagrama de pareto en Excel
Eleazar88
 
PDF
Trabajo Tecnología Diagrama De Pareto.pdf
srsantiagof09
 
PDF
Bulon ([Principal]).pdf kjihlkgjkjgjgghjgj
AlejandroAlonsoPajaJ
 
Conceptos básicos de programación - Paula Obando
edeppaulaobando
 
Customer Events - DeepRacer L200_ES.pptx
jcoronel
 
Trabajo grupal segundo periodo Tecnología .pdf
edepemanuelflechas
 
#USOLASTICPARA Proyecto integrador M1S4PI JuarezGonzalez _Maria_M1S4PI.doc...
MariaSusanaJuarezGon
 
Tecnología. Programación pseint 10-7 Sol Riaño Támara
edepsolriano
 
Trabajo Tecnología #2 Periodo (1).pdf ajdj
colgess2
 
Las tics en la sociedad como a cambiado nuestro entorno.pdf
gomezpereza332
 
ExcelTablasDinamicas02nivelintermedio.pptx
fernandoloza823
 
DIAGRAMA DE PARETO M. Camila Duque Loaiz
MariacamilaDuqueloai
 
Normas de la sala de informática Segundo
SilviaFernandaCesped
 
excel.pdf valentinamueses111 trabajo tecnologia
4zz5vkthyk
 
DIAGRAMA DE PARETO M Camila Duque Loaiza
MariacamilaDuqueloai
 
El candado imposible de abrir | Seguridad máxima explicada - Revista Técnica ...
Cerrajero 365 Valencia
 
Intro to 3D Printing Credit 1(Span).pptx
rlink3
 
Problema de pareto resuelto iandanielpdf
IanDanielGiraldoRami
 
Conceptos Básicos de programación- Paula Obando
edeppaulaobando
 
INTRODUCCION A BASE DE DATOS NIVELBASICO 6
Cangrilg
 
Distribución de frecuencias y diagrama de pareto en Excel
Eleazar88
 
Trabajo Tecnología Diagrama De Pareto.pdf
srsantiagof09
 
Bulon ([Principal]).pdf kjihlkgjkjgjgghjgj
AlejandroAlonsoPajaJ
 

Consideraciones para un buen diseño lógico de base de datos

  • 1. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114 Bases de Datos Con SQL Server Por Elena López Patrocinado por http://www.bdconsql.com/
  • 2. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114 Consideraciones para un buen diseño Lógido de Bases de Datos Por Elena López Patrocinado por http://www.bdconsql.com/
  • 3. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114http://www.bdconsql.com/ •Aisle los servicios de bases de datos: divide y vencerás. •Documente las bases de datos y sus objetos. •Cumplir las reglas de normalización/desnormalización. CONSIDERACIONES
  • 4. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114http://www.bdconsql.com/ CONSIDERACIONES Crear un estándar de nomenclatura para nombrar los objetos: •Evitar espacios, abreviaturas y el uso del guión bajo para nombrar objetos; por un tema de estética y legibilidad se recomienda intercalar mayúsculas y minúsculas (ejemplo InsertarCliente en lugar de Insertar_Cliente) •Elegir si utilizar plural o singular para los nombres de las tablas, nunca ambos a la vez. •Utilizar nombres estandarizados para las columnas en todas las tablas donde se hace referencia a las mismas, por ejemplo ClienteID, PaisID, etc. |
  • 5. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114http://www.bdconsql.com/ CONSIDERACIONES • No nombrar objetos acorde a su naturaleza sino a su función; me refiero a la práctica de utilizar prefijos y/o sufijos para nombrarlos (ejemplo: tbl para las tablas, v_ para las vistas, fn para funciones, etc.). MSSQL por si solo distingue bastante bien entre los tipos de objetos. • Evitar el uso del prefijo sp_ para nombrar los procedimientos almacenados. En MSSQL este prefijo es utilizado para los procedimientos del sistema por ende el manejador iría al esquema del sistema antes de ejecutar su Stored procedure, creando latencia en su ejecución. • No incluir dentro del nombre el módulo o sistema al que pertenece el objeto, para esto podemos siempre hacer uso de los esquemas.
  • 6. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114http://www.bdconsql.com/ CONSIDERACIONES • Uilice encriptación para las columnas que almacenan contraseñas, números de tarjetas de créditos y otros datos de naturaleza sensible. Estos valores solo deben ser desencriptados a través de las aplicaciones y no por Base de datos. • Utilice los tipos de datos de forma correcta: • Bit para booleanos • Char para alfanuméricos de longitud fija • Varchar para alfanuméricos de longitud variable • Date para cuando solo nos interese la fecha y no la hora • Time para cuando solo nos interese la hora y no la fecha • SmallDateTime para almacenar fecha y hora en rangos menores • DateTime para almacenar fecha y hora en rangos mayores al anterior • Etc.
  • 7. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114http://www.bdconsql.com/ CONSIDERACIONES • Utilice columnas de tipo entero (tinyint, int, bigint…) para las claves primarias de cada tabla, preferiblemente con valores autoincremento. Esto hará las relaciones más ágiles. Es importarte recordar que esta práctica por si sola no garantiza la integridad de los datos. • Cada tabla debe tener una restricción de registro único (unique constraint), con una o varias columnas que garanticen la ausencia de datos redundantes.
  • 8. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114http://www.bdconsql.com/ CONSIDERACIONES Para ejemplificar los dos últimos puntos, tomemos como referencia la tabla de clientes de una línea aérea: En nuestro ejemplo hemos creado la tabla Clientes, cuya clave primaria es la columna ClienteID (identificada con una llave amarilla), un valor entero autoincremental de 1 en 1 y que no garantiza que el cliente con un pasaporte número A22222 se registre dos veces dentro de nuestros datos (generando además de inconsistencia, falta de integridad). Para evitar esto entonces creamos una restricción de integridad para la columna que nos garantiza que cada dato sea único: ALTER TABLE dbo.Clientes ADD CONSTRAINT ucPasaporte UNIQUE (Pasaporte)
  • 9. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114http://www.bdconsql.com/ CONSIDERACIONES • Cree restricciones de integridad para aquellas columnas que lo requieran. La integridad de los datos debe ser siempre parte de la misión crítica del DBA y no debe ser dejada al azar ni a los aplicativos. Incluya siempre claves primarias, relaciones/claves foráneas, check constraints, null/not null, etc. • Evite el uso de “Select *” en las consultas. Es una de las malas prácticas más comunes dentro de la escritura de queries. Para un mejor rendimiento se recomienda seleccionar solo las columnas necesarias separadas por coma: SELECT Pasaporte, PrimerNombre, Apellido FROM dbo.Clientes
  • 10. Bases de Datos con MSSQL - Por Elena López - [email protected] - 1.809.481.3114http://www.bdconsql.com/ CONSIDERACIONES • Otorgue a cada usuario el rol y los permisos correspondientes; evite propagar el rol de administración a usuarios que no necesitan dicho acceso. • Particione las tablas con gran volumen de datos, de preferencia históricos. Con esto incrementamos el tiempo de respuesta de las consultas. • No almacene objetos binarios (BLOB) dentro de las tablas transaccionales: crearía lentitud en las consultas; haga uso del FileStream o de las FilesTables (a partir de la versión 2016) que brinda el manejador MSSQL.