Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Database fundamental itprosdc_chapter2

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 25 Anuncio

Más Contenido Relacionado

Presentaciones para usted (19)

Similares a Database fundamental itprosdc_chapter2 (20)

Anuncio

Más de Julián Castiblanco (20)

Más reciente (20)

Anuncio

Database fundamental itprosdc_chapter2

  1. 1. Julián Castiblanco P. http://julycastiblanco.blogspot.com/ Julian_castiblancop@hotmail.com MCT-MCITP-MCTS SQL Server 2008/2005 Líder ITPros-DC SESIÓN 2
  2. 2. CONTENIDO DEL CURSO
  3. 3. CONTENIDO DEL CURSO
  4. 4. Agenda Primera Sesión • Tipos de Datos • Creación de Tablas • Creación de Vistas • Creación de Procedimientos y funciones
  5. 5. Tipos de Datos
  6. 6. Tipos de Datos Toda Columna, variable, expresión o parámetro tiene un tipo de dato Tipos de Datos por Categoría Numéricos Cadenas Numéricos Texto Aproximados Binarias Exactos Fecha y Hora Otros Tipos Texto no- unicode
  7. 7. Tipos de Datos • Exact numerics: bigint, numeric, bit, smallint, decimal, smallmoney, int, tinyint, money • Unicode character strings: nchar, nvarchar, ntext • Approximate numerics: float, real • Binary strings: binary, varbinary, image • Date and time: date, datetimeoffset, datetime2, smalldatetime, datetime, time • Other data types: cursor, timestamp, hierarchyid, uniqueidentifier, sql_variant, xml, table • Character strings: char, varchar, text http://go.microsoft.com/fwlink/?LinkID=127223
  8. 8. Tipos de Datos http://msdn.microsoft.com/en-us/library/ms187745(v=sql.100).aspx
  9. 9. Tipos de Datos http://msdn.microsoft.com/en-us/library/ms186724(v=sql.100).aspx
  10. 10. Escenario Pamela quiere diseñar una base para almacenar información sobre todos los perfumes y splash que hay en el mercado; con el fin de almacenar información detallada como tipo de aroma, precio, ,cantidad, tamaño, casa, nombre, y lugar para conseguirlo. 1. Qué tipo de campo debería usar para almacenar el nombre del producto? 1. Char, varchar 2. Name 3. Integer 2. Cual tipo de dato para almacenar la cantidad en onzas ? 1. Float 2. Integer 3. Tiny 3. En que tipo de dato almacenaría el precio del producto? 1. Money 2. Int 3. Float
  11. 11. Entendiendo Tablas
  12. 12. ANSI SQL Nombre Comentarios SQL-86 Primera publicación hecha por ANSI. Confirmada por ISO en 1987. SQL-89 Revisión menor. SQL-92 Revisión mayor. Se agregaron expresiones regulares, consultas recursivas (para relaciones SQL:1999 jerárquicas), triggers y algunas características orientadas a objetos. Introduce algunas características de XML, cambios en las funciones, SQL:2003 estandarización del objeto sequence y de las columnas autonumericas. (Ver Eisenberg et al.: SQL:2003 Has Been Published.) ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Define maneras de importar y guardar datos XML en SQL:2006 una base de datos SQL, manipulándolos dentro de la base de datos y publicando el XML y los datos SQL convencionales en forma XML Permite el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. SQL:2008 Incluye los disparadores del tipo INSTEAD OF. Añade la sentencia TRUNCATE. (Ver [1].) http://es.wikipedia.org/wiki/SQL
  13. 13. Tablas • Son el objeto básico de las bases de datos. • Deberá proveer un nombre, (un esquema), el nombre de las columnas y el tipo de datos. • De ser necesario definir una llave primaria (esto forzará a que hayan registros únicos. • Definir que columnas podrán tener valores nulos.
  14. 14. Tablas CREATE TABLE dbo.Products ( ProductID int PRIMARY KEY NOT NULL, ProductName varchar(25) NOT NULL, Price money NULL, ProductDescription text NULL) GO
  15. 15. Tablas ALTER TABLE dbo.Products ADD Reference varchar(29) NOT NULL ALTER TABLE Production.TransactionHistoryArchive WITH NOCHECK ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID) WITH (FILLFACTOR = 75, ONLINE = ON, PAD_INDEX = ON); GO
  16. 16. Escenario Pamela ya tiene claro los tipos de datos que utilizará para su tabla. Ella planea utilizar las propiedades ANSI SQL y planea reutilizar lo aprendido anteriormente: 1. ANSI SQL se refiere a un conjunto de reglas que: 1. Decide si un campo puede contener datos nulos o no. 2. Define el tamaño de todos los datos 3. Gobierna la estructura y contenido de las sentencias. 2. Cual comando debe ser utilizado para crear una nueva tabla? 1. CREATE TABLE perfumes ( nombre varchar(29), precio money, cantidad tinyint… 2. ADD TABLE perfumes ( nombre varchar(29), precio money, cantidad tinyint… 3. INSERT TABLE perfumes ( nombre varchar(29), precio money, cantidad tinyint… 3. Basados en la información de Pamela cual campo debería hacer parte de la llave primaria? 1. Cantidad 2. Nombre 3. Nombre y la cantidad
  17. 17. Entendiendo Vistas
  18. 18. Vistas • Una vista puede ser entendida como una tabla virtual generada de una consulta almacenada. • Los datos accedidos mediante la consulta de la tabla NO están almacenados en la base de datos como un objeto. Lo que se almacena es la sentencia SELECT que genera el resultado. • Desde SQL Server 2005 es posible crear vistas Indexadas las cuales crean un índice único agrupado para mejorar el rendimiento de las consultas hechas a las vistas.
  19. 19. Vistas • Es utilizada para: – Restringir a usuarios a un set de datos específico. – Restringir a usuarios a un conjunto específico de columnas. – Unir columnas de multiples tablas y verlas como una sola tabla. – Agregar información en vez de entregar detalles. Es posible utilizar funciones como SUM, AVG, MAX, MIN. – Simplificar el código utilizado en los procedimientos almacenados. CREATE VIEW [dbo].[Alphabetical list of products] AS SELECT Products.ProductName, Categories.CategoryName FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID WHERE (((Products.Discontinued)=0))
  20. 20. Escenario Pamela ha identificado los siguientes requerimientos para su aplicación: • Lista del nombre de productos con precio y cantidad (oz) • Crear una lista de productos por fabricante. • Calcular el costo promedio por casa, el costo máximo, el mínimo y el número de productos. 1. Cuál sería la mejor solución que debería implementar Pamela: 1. Crear vistas separadas para cada requerimiento. 2. Crear una nueva tabla para cada requerimiento. 3. Crear una sola vista que pueda cumplir con todos los requerimientos. 2. Cuál es el beneficio más importante del uso de vistas? 1. Restringir el acceso a la información de las tablas. 2. Reducir el espacio utilizado en disco. 3. Asegurar la integridad de la información. 3. Qué es una vista indexada? 1. Es una vista construida sobre los índices de las tablas origen 2. Una vista ordenada por un campo específico de la consulta. 3. Una vista a la que se le ha creado un índice.
  21. 21. Entendiendo Procedimientos Almacenados
  22. 22. Procedimientos • Son sentencias de T-SQL que se almacenan en el servidor. Utilizado para almacenar tareas repetitivas que se ejecutan eficientemente en el servidor. • Aceptan parámetros y retornan parámetros cuando son invocados. • Las reglas de negocio encapsuladas en un procedimiento puede ser cambiada en un solo objeto y todos los clientes utilizan el mismo objeto lo que asegura la consistencia en acceso y modificación de datos • El modelo ER puede ser oculto a los usuarios finales. • Se pueden otorgar privilegios de ejecución aún si estos no tienen acceso a las tablas y vistas referenciadas. • Se reduce el tráfico de datos en la red. • Puede mejorar el desempeño de las aplicaciones.
  23. 23. Procedimientos • Existen propiedades adicionales para los procedimientos como las siguientes: – With Recompile: Cada vez que se ejecuta se recrea el plan de ejecución – With Encryption: Oculta la lógica (TSQL statement) que genera el dataset de respuesta. – Execute AS: La consulta interna en el procedimiento se ejecuta con los privilegios de un usuario diferente al que lo invocó. • CREATE Procedure pGetEmployeeLogin @NationalIDNumber nvarchar(15) AS SELECT NationalIDNumber, LoginID FROM HumanResources.Employee WHERE NationalIDNumber = @NationalIDNumber GO
  24. 24. Procedimientos • Porque mejoran el performance de las aplicaciones? – Todo se basa en los planes de ejecución de SQL Server Parcing Resolving Optimizing Compiling Executing Cuando se ejecuta un procedimiento almacenado, este utiliza los planes de ejecución creados con anterioridad, lo que reduce el tiempo de ejecución de las consultas.
  25. 25. Bibliografía • http://msdn.microsoft.com/en-us/library/ms365414.aspx • http://go.microsoft.com/fwlink/?LinkID=127223 • http://msdn.microsoft.com/en-us/library/ms187745(v=sql.100).aspx • http://msdn.microsoft.com/en-us/library/ms186724(v=sql.100).aspx • http://es.wikipedia.org/wiki/SQL • Course 2778A, Writing Queries Using Microsoft® SQL Server® 2008 Transact-SQL

×