Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Comparativo sobre Software de Administración de Bases de Datos ( DBMS) Parte I SQL Server 2005 DB2 V9 ORACLE 10g Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Descripción General de los Productos Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Versión Actual DB2 ¾ DB2 Universal Database es el motor de base de datos ofrecido por IBM. ¾ Su actual versión es la 9. ¾ Este motor se caracteriza por estar disponible para varias plataformas entre ellas se pueden nombrar Linux, Unix, AS/400, OS/390 y Windows entre las más comunes. Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Asistentes gráficos para DB2 Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Administración Universal: Control Center Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Versión Actual SQL Server ¾ ¾ SQL Server 2005 es el motor de base de datos ofrecido por Microsoft. Este motor solo corre bajo la plataforma Windows. Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Herramientas de SQL Server • SQL Server Management Studio •Integration Services (SSRS - DTS) •Analysis Services (SSAS) •Reporting Services (SSRS) Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I SQL Server management Studio Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Servicios de SQL Server Servicio MSSQLServer Servicio SQLServerAgent Servidor Administración de datos Proceso de transacciones y consultas Integridad de datos Trabajos Alertas Operadores Coordinador de Administración de transacciones transacciones distribuidas distribuidas de Microsoft Microsoft Search Catálogos de texto Índices de texto Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Versión Actual Oracle ¾ ¾ Oracle 10g es el motor de base de datos ofrecido por Oracle. Este motor de base de datos corre bajo múltiples plataformas: Windows, Linux, XP-UX, SCO-UNIX, Solaris, IBM AIX. Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Herramientas Administrativas Oracle • Oracle Enterprise Manager. • Oracle Designer • Oracle Application Server Discoverer • Oracle WareHouseBuilder. • Oracle Dataminig Servicios •OracleServiceXXX •OracleOraHome92TNSListener Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Oracle Enterprise Manager Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Índices y estructuras de almacenamiento de datos Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Tipos de Tablas ¾ Las tablas estandar se almacenan como montículos. ¾ Tabla organizada con índices (índice cluster se llaman en DB2 y SQL Server) ¾ Oracle y DB2 manejan particiones de tablas (divisiones por rangos, asociativas, compuestas y por listas). Cada fila pertenece solo a una partición. Para tablas muy grandes. Ambas también manejan en forma opcional compresión de tablas (- E/S y + CPU) ¾ Oracle maneja Tablas de agrupaciones (guarda en forma contigua distintos tipos de filas. Son filas de tablas diferentes que se guardan juntas) También maneja la agrupación asociativa. También maneja tablas anidadas (aunque las guarda separadas) Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Índices ¾ Arboles B+ para el indexado de datos convencionales ¾ Opciones de indexamiento para objetos particulares como por ejemplo tipo de datos de texto ¾ Herramientas de diseño y optimización de indices ¾ Indices clustered y no-clustered Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Esquema Almacenamiento DB2 ¾ Múltiple tamaños de páginas ( 4, 8, 16 y 32 k) – maximo de 255 registros por página (v8.2). Y múltiples buffer pools. ¾ Tablespaces e Index spaces ¾ Container (Físico) ¾ Extent (configurable) Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Relación entre espacios de tabla y contenedores base de datos espacio1 t1 t2 espacio2 t3 datos regulares espacio3 índices contenedores espacio4 LOBs Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes CREATE REGULAR LONG SYSTEM USER Create Tablespaces TABLESPACE Tablespace-name TEMPORARY NODEGROUP IN nodegroup-name PAGESIZE Integer –The page size can be 4 KB, 8 KB, 16 KB, or 32 KB. MANAGED BY SYSTEM DATABASE EXTENTSIZE number-of-pages system-containers database-containers PREFETCHSIZE number-of-pages Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Indices de llaves primarias Nombres generados por DB2 por omisión Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Índices: Creación Asistida Se asegura de no poder registrar un nuevo departamento con un nombre existente (UNIQUE) Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Asesor de Diseño Para una carga de trabajo, y condiciones de contorno de tamaño, tiempo de construcción, etc., hallar los índices para mejor performance ƒ Facilitar al Administrador hallar los "mejores" índices ƒ Simplificar análisis de rendimiento Para simular los índices que requiera una carga de trabajo Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Esquema Almacenamiento SQL2005 ¾ Tamaños de paginas de 8 Kb ¾ Extents de 8 paginas (64 Kb). ¾ Archivos mdf Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Grupos de archivos sys... sys... sys... sys... sysusers sysusers sysobjects sysobjects Base de datos Northwind ... ... Orders Orders Customers Customers Products Products OrdHistYear2 OrdHistYear2 OrdHistYear1 OrdHistYear1 C:\ D:\ E:\ Northwind.mdf Northwind.mdf OrdHist1.ndf OrdHist1.ndf OrdHist2.ndf OrdHist2.ndf Northwind.Idf Northwind.Idf Grupo de archivos predeterminado OrderHistoryGroup Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes La tabla sysindexes Id. Id. de de índice índice Tipo Tipo de de objeto objeto 00 Montón Montón 11 Índice Índice agrupado agrupado 22 aa 250 250 Índice Índice no no agrupado agrupado 255 255 text, text, ntext ntext oo image image Describe los índices Ubicación de IAM, primero y raíz de índices Número de páginas y filas Distribución de datos Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Búsqueda de filas sin índices sysindexes id indid = 0 IAM Extensión … 127 128 129 130 … Montón Extensión 127 01 Con …… 01 Rudd 01 Akhtar 02 01 Funk Smith …………… 02 01 White Con 02 01 Funk Rudd 03 02 White 01 Ota Akhtar …………………… 03 02 Barr 01 Funk Smith 03 02 Smith White 04 03 Durkin 02 Jones Funk ......……………… …04 03 ... 02 White Ota 03 Martin 05 Lang 03 …...Barr Smith ...............……… ………… ... 03 Jones ...... ...Martin ...... ...... ………04 … ... … ...... ... …… ...... ...... … ... Extensión 128 01 Dunn …… 01 Rudd 01 Akhtar 02 01 Randall Smith …………… 02 01 White Con 02 01 Funk Rudd 03 02 Ota 01 Ota Akhtar …………………… 03 02 Barr 01 Funk Smith 03 02 Smith White 04 03 Slichter 02 Jones Funk ......……………… …04 03 ... 02 White Ota 03 Martin 05 LaBrie 03 …...Barr Smith ...............……… ………… ... 03 Jones ...... ...Martin ...... ...... ………04 … ... … ...... ... …… ...... ...... … ... Primera IAM Mapa de bits 1 1 0 1 Extensión 129 01 Seattle …… 01 Rudd 01 Akhtar 02 01 Paris Smith …………… 02 01 White Con 02 01 Funk Rudd 03 02 Tokyo 01 Ota Akhtar …………………… 03 02 Barr 01 Funk Smith 03 02 Smith White 04 03 Atlanta 02 Jones Funk ......……………… …04 03 ... 02 White Ota 03 Martin ………… ... 03 …...Barr Smith ...............……… ... 03 Jones ………04 ...... ...Martin ... ... ……… ...... … ............... …… ...... ...... Extensión 130 01 Graff …… 01 Rudd 01 Akhtar 02 01 Bacon Smith …………… 02 01 White Con 02 01 Funk Rudd 03 02 Koch 01 Ota Akhtar …………………… 03 02 Barr 01 Funk Smith 02 Smith White ……03 03 ... 02 Jones Funk ......……………… 03 ... 02 White Ota 03 Martin ……04 …… ... 03 …...Barr Smith ...............……… ... 03 Jones ………04 ...... ...Martin ... ... ……… ...... … ............... …… ...... ...... Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Búsqueda en Montón con índice no agrupado sysindexes id indid = 2 raíz Akhtar Akhtar No situadas ... ... en el nivel Martin Martin SELECT lastname, firstname Pág. 37 SELECT lastname, Pág.firstname 28 de hoja Pág. 12 - Raíz Akhtar Martin member AkhtarFROM Martin FROM member Ganio Smith GanioWHERE lastname Smith WHERE lastname ... ... ... ... Pág. 41 Akhtar Akhtar 4:706:01 4:706:01 Barr Barr 4:705:03 4:705:03 Con Con 4:704:01 4:704:01 Funk 4:706:02 Funk 4:706:02 Funk Funk 4:704:02 4:704:02 Índice Índice no agrupado no agrupado BETWEEN 'Masters' AND 'Masters' AND71 'Rudd' 'Rudd' Pág. 61 Pág. Nivel de hoja BETWEEN Pág. 51 Ganio Ganio 4:709:01 4:709:01 Hall Hall 4:709:04 4:709:04 Jones Jones 4:709:02 4:709:02 Jones 4:708:03 Jones 4:708:03 Jones Jones 4:707:03 4:707:03 Martin Martin 4:708:01 4:708:01 Matey Matey 4:706:04 4:706:04 Ota Ota Ota 4:707:02 4:707:02 Phua 4:708:02 Phua 4:708:02 Rudd Rudd 4:705:01 4:705:01 Smith Smith Smith Smith Smith Smith White White White White 4:706:03 4:706:03 4:708:04 4:708:04 4:707:01 4:707:01 4:704:03 4:704:03 4:705:02 4:705:02 (Valor de clave) Montón Pág. 704 01 ... Conn 02 ... Funk 03 ... White ... ... ... ... ... ... File ID #4 Pág. 705 01 ... Rudd 02 ... White 03 ... Barr ... ... ... ... ... ... Pág. 706 01 ... Akhtar 02 ... Funk 03 ... Smith 04 ... Matey ... ... ... Pág. 707 01 ... Smith 02 ... Ota 02 03 ... Jones ... ... ... ... ... ... Pág. 808 01 ... Martin 02 02 ... Phua 03 ... Jones 04 ... Smith ... ... ... P Pág. 709709 01 ... Ganio 02 ... Jones 03 ... Hall ... ... ... ... ... ... Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Búsqueda en un índice agrupado sysindexes id indid = 1 raíz Índice agrupado Akhtar Akhtar … … Martin Martin Pág. 140 - Raíz Akhtar Akhtar lastname, firstname Martin Martin SELECT SELECT lastname, firstname Ganio Smith Ganio Smith FROM member FROM … … … member … WHERE lastname = 'Ota' WHERE Pág. 141 lastname = 'Ota' Pág. 145 Akhtar Akhtar 2334 2334 Barr 5678 Barr 5678 Con 2534 Con 2534 Funk Funk 1334 1334 Funk Funk 1534 1534 ... ... ... ... Pág. 100 ... ... ... ... ... ... ... ... ... ... ... ... Ganio Ganio 7678 7678 Hall 8078 Hall 8078 Jones Jones 2434 2434 Jones Jones 5978 5978 Jones Jones 2634 2634 ... ... ... ... Pág. 110 ... ... ... ... ... ... ... ... ... ... ... ... Martin Martin 1234 1234 Martin Martin 7778 7778 Ota 5878 Ota 5878 Phua Phua 7878 7878 Rudd Rudd 6078 6078 ... ... ... ... Pág. 120 ... ... ... ... ... ... ... ... ... ... ... ... Smith Smith 1434 1434 Smith Smith 5778 5778 Smith Smith 7978 7978 White White 2234 2234 White White 1634 1634 ... ... ... ... Pág. 130 ... ... ... ... ... ... ... ... ... ... ... ... Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Búsqueda en índice agrupado con un índice no indid = 2 raíz sysindexes id agrupado Índice no agrupado para First Name No situadas en el nivel de hoja Aaron Aaron ... ... Jose Jose Aaron Aaron Jose Jose SELECT lastname, phone SELECT lastname, firstname, firstname, phone Deanna Nina Deanna Nina FROM member … …member … FROM … WHERE WHERE firstname firstname == 'Mike' 'Mike' Aaron Aaron Adam Adam Amie Amie … … Con Con Barr Barr Baldwin Baldwin … … Daum Daum Hall Hall Hampton Hampton … … Jose Jose Judy Judy Mike Mike … … Lugo Lugo Kaethler Kaethler Nash Nash … … Nivel de hoja (Valor de clave agrupado) Barr Barr Kim Kim Nagata Nagata O’Melia O’Melia Índice agrupado para Last Name Barr Barr Cox Cox Daum Daum … … Deanna Deanna Don Don Doug Doug … … Adam Adam Arlette Arlette Deanna Deanna … … … … … … … … … … Kim Kim Kobara Kobara LaBrie LaBrie … … Shane Shane Linda Linda Ryan Ryan … … … … … … … … … … Nagata Nagata Nash Nash Nixon Nixon … … Susanne Susanne Mike Mike Toby Toby … … … … … … … … … … Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Esquema Almacenamiento Oracle ¾ Los espacios de tabla (Table space) se dividen en segmentos(segments). Asignado para cada tabla un segmento (por table space). ¾ Se asignan segmentos especiales para los temporales, de retroceso (roll back y multiversión). indices, ¾ Los segmentos se dividen en Extensiones – Extents (agrupaciones contiguas de bloques). ¾ Se pueden definir el tamaño de bloque y de extension (a nivel de Table space. ¾ Un Datafile está asociado a un único table space (un table space puede estarlo con muchos data file) Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Table Space en Oracle • Espacios de tablas (table space): Es un nombre que asocia un conjunto de propiedades de almacenamiento que se trasladan a las Datafiles. •Espacio de tablas (table space) del sistema: Siempre se crea. Contiene las tablas diccionario de datos y almacenamiento para los disparadores y los procedimientos almacenados. • Espacios de tablas (table space) de datos de usuario. Los datos de usuario se pueden almacenar en el espacio de tablas del sistema, es deseable separar los datos de usuario en otro espacio de tablas. Normalmente la decisión sobre los otros espacios de tablas que se deben crear está basada en el rendimiento, disponibilidad, capacidad de mantenimiento y facilidad de administración. • Espacios de tablas (table space) temporales. Muchas operaciones de base de datos requieren la ordenación de los datos y la rutina de ordenación puede tener que almacenar éstos temporalmente en el disco si la ordenación no se puede realizar en memoria. Sistemas de Datos Curso: Ernesto Chinkes Table space, segmentos, bloque Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Indices en Oracle ¾ Índices B+ (no guarda nulos, si se repiten los campos de búsqueda se los guarda como una sola entrada) ¾ Índices para montículos distintos que Índices secundarios para tabla organizada por índice (usa valor de suposición y dirección lógica mediante el árbol) ¾ Índices de Mapa de bits. Usa estructura árbol B para representar cada una de las entradas (valorCol, fil ini, fil fin, mapa bits). Puede usar algoritmo de compresión (BBC) si la distancia entre 1 es considerable, indicando el numero de 0. Oracle dice: Es más eficiente que el arbol B+ si el número de valores distintos de la clave es menor que la mitad del número de filas en una tabla. Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Indices (continuación) ¾ Índices ¾ Índices basados en funciones. de reunión (la columna clave no pertenece a la tabla sobre la que se realiza la búsqueda). Modelo estrella. Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I ESQUEMA Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Tipos de datos del sistema Numérico Entero Numérico exacto Numérico aproximado Moneda Fecha y hora Binario Carácter y caracteres Unicode Otros (Variant, strong typing, XML, Arrays, Herencia, compuestos) Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Catálogo en SQL Server Bases de datos del sistema master model tempdb msdb distribution Tablas del sistema User1 Bases de datos de usuario Sysobjects Syscolumns sysindex .... Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Las Tablas de catálogo (en SYSIBM) Un catálogo por cada base de datos Contiene tablas con información de los objetos de la base de datos, por ejemplo : Definición de tablas e índices Tipos de datos de las columnas Restricciones definidas Dependencias entre objetos de BD Privilegios sobre los objetos de BD En DB2 V8 son 128 tablas del esquema SYSIBM y residen en el espacio de tabla SYSCATSPACE Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Vistas del Catálogo: SYSCAT, SYSSTAT SYSCAT 62 vistas CHECKS COLAUTH COLCHECK COLDIST COLUMNS CONSTDEP DATATYPES DBAUTH FUNCPARMS FUNCTIONS INDEXAUTH PACKAGES PROCEDURES REFERENCES TABCONST TABLES TABLESPACES TRIGGERS VIEWS . . . Restricciones Privilegios en columnas Columnas en CHECKS Estadísticas de columnas Columnas Dependencias de restricciones Tipos de datos Autorizaciones sobre la BD Parámetros de funciones Funciones de usuario privilegios sobre índices Paquetes Procedimientos Restricciones referenciales restricciones sobre tablas Tablas Espacios de tabla Activadores Vistas . . . SYSSTAT 5 vistas COLDIST COLUMNS FUNCTIONS INDEXES TABLES Estadísticas de columnas Columnas Funciones de usuario Indices Tablas Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Control de Acceso DB2 ¾ Cada tabla o vista puede ser protegida individualmente ¾ Los tablespaces pueden ser tratados como objetos de seguridad ¾ El creador de un tabla ( CREATE TABLE ) se convierte en su propietario y recibe totales privilegios para la tabla A los otros usuarios hay que concedérselos específicamente con la sentencia GRANT ¾ Los permisos se pueden asignar por medio de roles Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Seguridad de datos. Niveles de seguridad instancia del DBMS Nivel Instancia usuario se conecta autenticación Nivel Base de datos usuario administra BD1 BD2 BD1 autorización Nivel Objeto de BD. usuario utiliza privilegio Objeto de base de datos Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes SQL - DCL GRANT : privilegios sobre objetos de BD Desde el centro de control privilegio otorgado WITH GRANT OPTION privilegio negado Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Grupos de usuarios Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Control de Acceso SQL 2005 ¾ Cada tabla o vista puede ser protegida individualmente ¾ Se puede asignar los permisos hasta el nivel de columna ¾ El creador de un tabla ( CREATE TABLE ) se convierte en su propietario y recibe totales privilegios para la tabla A los otros usuarios hay que concedérselos específicamente con la sentencia GRANT ¾ Los permisos se pueden asignar por medio de roles Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Autenticación de inicio de sesión AUTENTICACIÓN Grupo Grupooousuario usuario de deWindows Windows2000 2000 O BIEN Cuenta Cuentade deinicio iniciode de sesión sesiónde deSQL SQLServer Server SQL Server comprueba la conexión de confianza Windows … SQL Server SQL Server comprueba el nombre y la contraseña Comparativo sobre DBMS – Parte I Sistemas de Datos Curso: Ernesto Chinkes Cuentas de usuario y funciones de la base de datos Grupo o usuario de Windows 2000 SQL Server comprueba la conexión de confianza Windows 2000 O BIEN SQL Server asigna inicios de sesión a cuentas de usuario y funciones Usuario de base de datos SQL Server Función de base de datos Cuenta de inicio de sesión de SQL Server SQL Server comprueba el nombre y la contraseña Sistemas de Datos Curso: Ernesto Chinkes Comparativo sobre DBMS – Parte I Comparativo sobre Software de Administración de Bases de Datos ( DBMS) Parte I SQL Server 2005 DB2 V9 ORACLE 10g