2-Creación de Una Base de Datos y Esquemas SQL
2-Creación de Una Base de Datos y Esquemas SQL
2-Creación de Una Base de Datos y Esquemas SQL
datos y Esquemas
Ingeniería de datos II
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
1 Creación de una base de datos
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Bases de datos del sistema
• Base de datos Master
• Registra toda la información del sistema para una instancia de SQL Server.
• Base de datos msdb
• La utiliza el Agente SQl Server para programar Alertas y trabajos (Jobs).
• Base de datos Model
• Se utiliza como plantilla para todas las bases de datos creadas en la instancia de SQL
Server. Las modificaciones hechas a la base de datos model , como el tamaño de la base
de datos, la intercalación, el modelo de recuperación y otras opciones de base de datos,
se aplicarán a las bases de datos que se creen con posterioridad.
• Base de datos tempDB
• Área de trabajo que contiene objetos temporales o conjuntos de resultados
intermedios.
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Creación de una base de datos
• CREATE DATABASE <<Nombre de base de datos>>
• Crea la base de datos en la instancia por defecto.
• Las bases de datos deben crearse en master
• Ejemplo:
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Archivos de una base de datos
• Archivo Primario
• Incluye información de inicio de la base de datos y apunta a sus demás archivos.
• Cada base de datos tiene un archivo de datos principal.
• La extensión de este archivo es .mdf
• Archivos Secundarios
• Almacena las tablas de usuario.
• Los datos se pueden distribuir entre varios discos colocando cada archivo en una unidad de
disco diferente.
• La extensión de este archivo es .ndf
• Archivo de registro de transacciones
• Contiene la información que se utiliza para recuperar la base de datos.
• Cada base de datos debe tener al menos un archivo de registro de transacciones.
• La extensión de este archivo es .ldf
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Archivos de una base de datos
• Ejemplos:
• Una base de datos sencilla por ejemplo Alquiler puede tener un archivo principal (.mdf)
que contenga todos los datos y objetos de la base de datos; y un archivo de registro con
la información del registro de transacciones (.ldf)
• Una base de datos más compleja, por ejemplo Prestamos, puede tener un archivo
principal (.mdf) y cinco archivos secundarios (.ndf). En este caso, los datos y objetos de
la base de datos se reparten entre los seis archivos, y puede contener cuatro archivos
de registro adicionales para la información del registro de transacciones (.ldf)
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Sentencia Create database
CREATE DATABASE <<NombreBaseDatos>>
ON [PRIMARY] (
NAME=Nombre_lógico_data,
FILENAME=‘Ubicación y nombre del archivo data’,
SIZE=tamaño [KB|MB|GB|TB],
MAXSIZE=tamaño_máximo [KB|MB|GB|TB|UNLIMITED],
FILEGROWTH=incremento de crecimiento [KB|MB|%|] )
LOG ON (
NAME=Nombre_lógico_log,
FILENAME=‘Ubicación y nombre del archivo log’,
SIZE=tamaño [KB|MB|GB|TB],
MAXSIZE=tamaño_máximo [KB|MB|GB|TB|UNLIMITED],
FILEGROWTH=incremento de crecimiento [KB|MB|%|] )
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Detalle de la sentencia create database
• ON PRIMARY
• Define las propiedades del archivo primario
• LOG ON
• Define las propiedades del archivo de transacciones
• Nombre_lógico_data y Nombre_lógico_log
• Nombre para referenciar en sentencias SQL
• Incremento de crecimiento
• Cantidad de espacio que se añade al archivo para espacio adicional.
• Se puede indicar como una magnitud en KB o MB, o como una tasa de crecimiento (%).
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Creación de la base de datos
CREATE DATABASE AGENDA
ON [PRIMARY] (
NAME=agenda_data,
FILENAME=‘C:\DataAgenda\agenda.mdf’,
SIZE=8MB,
MAXSIZE=15MB,
FILEGROWTH=1 MB
)
LOG ON (
NAME=agenda_log,
FILENAME=‘C:\LogAgenda\agenda_log.ldf’,
SIZE=3MB,
MAXSIZE=8MB,
FILEGROWTH= 10%
)
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Creación de la base de datos BAlquiler
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Modificar la base de datos BAlquiler
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Modificar la base de datos BAlquiler
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Modificar la base de datos BAlquiler
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Modificar la base de datos BAlquiler
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Modificar la base de datos BAlquiler
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Modificar la base de datos BAlquiler
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Objetos de una base de datos
• Tablas [Tables]
• Para el almacenamiento de la colección de entidades.
• Columnas [Columns]
• Para los atributos. Tienen un nombre único y un tipo de dato.
• Tipo de datos [Datatypes]
• Carácter, numérico o fecha.
• Clave Primaria [Primary Key]
• Garantizan que las filas son únicas en la tabla.
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Objetos de una base de datos
• Claves Foráneas [Foreign Keys]
• Son columnas que hacen referencias a claves primarias de otras tablas.
• Restricciones [Constraints]
• Son mecanismos de integridad de datos que el sistema implementa.
• Disparadores [Triggers]
• Son procedimientos almacenados que se ejecutan cuando insertamos, eliminamos o
actualizamos tablas.
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Objetos de una base de datos
• Indices [Indexes]
• Para accesar a la data con mayor rapidez.
• Estadísticas [Statistics]
• Distribución estadística de los elementos de una o mas columnas.
• Vistas [Views]
• Son tablas virtuales que se obtienen con lecturas de datos provenientes de una o mas
tablas.
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Objetos de una base de datos
• Sinónimos [Synonyms]
• Para referenciar objetos con nombres alternativos.
• Procedimientos Almacenados [Store Procedure]
• Son operaciones con la base de datos que se almacenan y ejecutan por separado.
• Funciones definidas por el usuario
• [User-defined functions]
• Ensamblados [Assemblies]
• Son objetos que referencian a módulos de aplicación tipo .dll
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Objetos de una base de datos
• Tipos de datos definidos por el usuario
[user-defined types]
• Reglas [Rules]
• Se asignan a las columnas para garantizar que los datos cumplen con alguna condición.
• Valores determinados [Defaults]
• Valores de mayor moda.
• Usuarios [Users]
• Permisos para las personas que acceden a la base de datos.
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Catálogo del sistema de base de datos
• Colección de tablas del sistema.
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Sys.databases
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Sys.syslogins
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Sys.sysmessages
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
2 Esquemas de una base de datos
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Esquemas de la base de datos
Esquema: Person
• Un esquema es un contenedor con nombre para
objetos de base de datos, que le permite agrupar Contact
objetos en espacios de nombres separados. (Server1.AdventureWorks.Person.Contact)
un esquema:
Esquema: dbo
Server.database.schema.object
• Ejemplo: AdventureWorks ErrorLog
(Server1.AdventureWorks.dbo.ErrorLog)
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Esquemas de la base de datos AdventureWorks
• HumanResources (Recursos humanos)
• Person (Personas)
• Production (Producción)
• Purchasing (Proveedores)
• Sales (Ventas)
• dbo
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Tablas del esquema HumanResources de la base de datos AdventureWorks
• HumanResources (Recursos humanos)
• Department
• Employee
• EmployeeDepartmentHistory
• EmployeePayHistory
• JobCandidate
• Shift
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Diagrama del esquema HumanResources
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Tablas del esquema Person de la base de datos AdventureWorks
• Person
• Address • Password
• AddressType • Person
• BusinessEntity • PersonPhone
• BusinessEntityAddress • PhoneNumberType
• BusinessEntityContact • StateProvince
• ContactType
• CountryRegion
• EmailAddress
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Diagrama del esquema Person
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Tablas del esquema Production de la base de datos AdventureWorks
• Production • ProductModel
• BillOfMaterials • ProductModelIllustration
• Culture • ProductModelProductDescriptionCulture
• Document • ProductPhoto
• Illustration • ProductProductPhoto
• Location • ProductReview
• Product • ProductSubCategory
• ProductCategory • ScrapReason
• ProductCostHistory • TransactionHistory
• ProductDescription • TransactionHistoryArchive
• ProductDocument • UnitMeasure
• ProductInventory • WorkOrder
• ProductListPriceHistory • WorkOrderRouting
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Diagrama del esquema Production
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Tablas del esquema Purchasing de la base de datos AdventureWorks
• Purchasing
• ProductVendor
• PurchaseOrderDetail
• PurchaseOrderHeader
• ShipMethod
• Vendor
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Diagrama del esquema Purchasing
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Tablas del esquema Sales de la base de datos AdventureWorks
• Sales
• CountryRegionCurrency • SalesPersonQuotaHistory
• CreditCard • SalesReason
• Currency • SalesTaxRate
• CurrencyRate • SalesTerritory
• Customer • SalesTerritoryHistory
• PersonCreditCard • SoppingCartItem
• SalesOrderDetail • SpecialOffer
• SalesOrderHeader • SpecialOfferProduct
• SalesOrderHeaderSalesReason • Store
• SalesPerson
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Diagrama del esquema Sales
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Esquemas de la base de datos
• dbo; es el esquema predeterminado para todos los usuarios.
• Creación de un Esquema:
• Create schema <<Name>> authorization <<propietario>>
Ejemplos:
Use AdventureWorks
go
Create schema RRHH authorization dbo;
Create schema Cuentas authorization dbo;
Create schema Pagos authorization dbo;
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Esquemas de la base de datos
• Eliminación de un Esquema:
• Drop schema <<Name>> authorization <<propietario>>
• Es necesario asegurarse que el esquema no tenga
objetos.
Verificación de la existencia
de esquemas
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
3 Creación de una base de datos y Esquemas
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Creación de la base de datos Biblioteca y Esquemas
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Tablas de la base de datos en Esquemas
• Base de datos : BibliotecaUniv
• Esquema : Compras
• Tablas
• PEDIDOS(IdPedido, IdEditorial(FK), FechaPedido, FechaAprobacion, MontoAprobado)
• DETALLE_PEDIDOS(IdPedido(FK)+CodigoLibro(FK), Precio, Cantidad)
• PAGOS_EFECTUADOS(NroOperacion, IdCajero(FK), IdPedido(FK), IdRepresentante(FK), MontoAprobado,
FechaProgramado, MontoPagado, FechaPagado, Intereses, Mora)
• LIBROS_EN_LISTA(CodigoLibro, PrecioUnitario, Titulo, AutorPrincipal, Editorial, AñoEdicion)
• REPRESENTANTE(IdRepresentante, Nombre, Email)
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Esquema: Compras
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Tablas de la base de datos en Esquemas
• Base de datos : BibliotecaUniv
• Esquema : Usuarios
• Tablas
• LECTOR(IdLector, Nombre, Apellidos, FechaNacimiento, Direccion, Email)
• ADMINISTRATIVO(IdLector, IdArea, HorarioTrabajo, FechaIngreso)
• DOCENTE(IdLector, Categoria, Condicion, Modalidad, IdDepartamento(FK))
• ESTUDIANTE(IdLector, AñoIngreso, Condicion, IdEscuela(FK))
• OTRO(IdLector, Procedencia)
• BIBLIOTECARIO(IdBibliotecario, Nombre, Email, FechaIngreso)
• CAJERO(IdCajero, Nombre, Login, FechaIngreso, Email)
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Esquema: Usuarios
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Tablas de la base de datos en Esquemas
• Base de datos : BibliotecaUniv
• Esquema : Servicios
• Tablas
• OPERACIONES(NroPrestamo, IdBibliotecario(FK), IdLector(FK), FechaOperacion)
• EJEMPLARES_PRESTADOS(NroPrestamo+IdEjemplar, FechaDevolver, FechaDevolucion, EstadoDevolucion)
• EJEMPLAR(IdEjemplar, IdLibro(FK), estado, TipoPrestamo, Disponibilidad)
• SANCIONES(NroSancion, NroPrestamo(FK), FechaSancion, Detalle, MontoImpuesto, EstadoPago, FechaPago)
• LIBRO(IdLibro, Titulo, NroVolumen, NroPaginas, IdEditorial(FK))
• LIBRO_AUTOR(IdLibro+IdAutor)
• AUTOR(IdAutor, Nombre, Email)
• EDITORIAL(IdEditorial, Nombre, IdRepresentante(FK))
• AREA(IdArea, Descripcion)
• DEPARTAMENTO(IdDepartamento, Nombre, FechaCreacion)
• ESCUELA(IdEscuela, Nombre, FechaCreación)
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Esquema: Servicios
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Base de datos BibliotecaUniv
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para la creación de tablas en Esquemas
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para la creación de tablas en Esquemas
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para la creación de tablas en Esquemas
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para la creación de tablas en Esquemas
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Filegroups de una base de datos
• Los filegroups (Grupos de archivos) son útiles para distribuir tablas con alto
volumen de información en diferentes discos para separar los índices de los datos.
• Definen conjuntos de archivos para obtener paralelismo en distintas unidades
almacenamiento.
• Sólo se pueden asignar filegroups a los data files.
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para agregar filegroups a la base de datos
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para agregar datafile a los filegroups de la BD
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Particionamiento de tablas de datos
• El particionamiento de tablas es el proceso donde tablas muy grandes son divididas
en varias partes más pequeñas.
• Al separar una tabla grande en tablas individuales más pequeñas, las consultas que
acceden sólo a una fracción de los datos pueden correr más rápido porque hay
menos datos para escanear.
• El objetivo principal de un particionamiento es ayudar en el mantenimiento de
tablas grandes y reducir el tiempo de respuesta general para leer y cargar datos
para operaciones SQL particulares.
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para particionar una tabla de la base de datos
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para crear la tabla Lector y agregar datos
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Script para crear la tabla Bibliotecario y agregar datos
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Crear la tabla particionada Operaciones
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Agregar datos a la tabla particionada Operaciones
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil
Creación de una base de
datos y Esquemas
Ingeniería de datos II
Bcl Soluciones - 2024 - Creación de una Base de datos y Esquemas Dr. Luis Boy Chavil