Datenbanken II. Ausarbeitung zum Thema: Oracle 10g und MS SQL Server 2005 ein Vergleich. Thomas Wächtler MatrNr.: 39221



Ähnliche Dokumente
Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Prozessarchitektur einer Oracle-Instanz

OP-LOG

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Whitepaper. Produkt: combit Relationship Manager / combit address manager. SQL Server Backup mit SQLBackupAndFTP

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

OPERATIONEN AUF EINER DATENBANK

Administering Microsoft SQL Server 2012/2014 Database (M20462) M /

Installation SQL- Server 2012 Single Node

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration

EasyWk DAS Schwimmwettkampfprogramm

EINRICHTEN EINER BMD NTCS SICHERUNG MIT SQL 2012

Grundlagen verteilter Systeme

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

AnNoText. AnNoText Online-Update. Copyright Wolters Kluwer Deutschland GmbH

Artikel Schnittstelle über CSV

Datensicherung. Beschreibung der Datensicherung

Fragen zur GridVis MSSQL-Server

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

MSDE 2000 mit Service Pack 3a

Backup der Progress Datenbank

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Nutzung von GiS BasePac 8 im Netzwerk

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

DOKUMENTATION VOGELZUCHT 2015 PLUS

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Matrix42. Use Case - Inventory. Version Februar

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Zeiterfassung-Konnektor Handbuch

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Installation Microsoft SQL Server 2008 Express

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Arbeiten mit UMLed und Delphi

Powermanager Server- Client- Installation

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

MailUtilities: Remote Deployment - Einführung

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Titel. System Center Service Manager 2012 R2 Anleitung zur Installation

OLAP und der MS SQL Server

Task: Nmap Skripte ausführen

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Windows Vista Security

EINSATZ VON MICROSOFT TERMINAL-SERVICES ODER CITRIX METAFRAME

SQL Server 2012 und SharePoint im Unternehmenseinsatz. Referent Daniel Caesar

MSSQL Server Fragen GridVis

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Vor- und Nachteile speicheroptimierter Tabellen

Avira Server Security Produktupdates. Best Practice

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße Essen Telefon Telefax

Datenübernahme easyjob 3.0 zu easyjob 4.0

3 Windows als Storage-Zentrale

aviita reporting portal

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Datenaustausch mit Datenbanken

Professionelle Seminare im Bereich MS-Office

Collax Archive Howto

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

An integrated total solution for automatic job scheduling without user interaction

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Guide DynDNS und Portforwarding

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

ISA Server 2004 Protokollierung - Von Marc Grote. Die Informationen in diesem Artikel beziehen sich auf:

Was ist neu in Sage CRM 6.1

Durchführung der Datenübernahme nach Reisekosten 2011

ERSTELLEN VON INCENTIVES IM ZANOX NETZWERK

Erste Schritte mit WordPress Anleitung WordPress Version 2.8.X

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

PQ Explorer. Netzübergreifende Power Quality Analyse. Copyright by Enetech Alle Rechte vorbehalten.

Macher Solutions Produktinformation SAP Crystal Reports 2011

SANDBOXIE konfigurieren

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Hilfe zur Dokumentenverwaltung

WinVetpro im Betriebsmodus Laptop

SOLISYON GMBH TOBIAS GRUBER BEN WEISSMAN. Analyse von Dimensions-Schlüsselfehlern bei der Aufbereitung von SSAS Datenbanken

Data Mining-Modelle und -Algorithmen

IBM SPSS Data Access Pack Installationsanweisung für Windows

Oracle GridControl Tuning Pack. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

Speicher in der Cloud

OFFLINE SYNCHRONISATION - ENIQ ACCESSMANAGEMENT PROGRAMMIER-CLIENT (ENIQ DEVICEMANAGEMENT) EINRICHTEN INSTALLATION DER SQL SERVER INSTANZ

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?

CartCalc FAQ (frequently asked questions) häufige Fragen zu CartCalc

Transkript:

Datenbanken II Ausarbeitung zum Thema: Oracle 10g und MS SQL Server 2005 ein Vergleich Thomas Wächtler MatrNr.: 39221

Inhaltsverzeichnis 0. Einführung 1. Komponenten 2. Architektur des SQL Server 2005 2.1 SQLOS 2.2 Relational Engine 2.3 Protocol Layer 3. Werkzeuge des SQL Server 2005 3.1 Object Explorer 3.2 Profiler 3.3 Tuning Anvisor 3.4 Activity Monitor 3.5 Configuration Manager 3.6 SQLCMD 4. Services des SQL Server 2005 4.1 Replikation 4.2 Reporting 4.3 Analysis 4.4 Notification 4.5 Integration 5. Vergleich SQL Server 2005 und Oracle 10g 5.1 Daten Verwaltung 5.2 Indexierung 5.3 Concurrency Control und Locking 5.4 Backup und Recovery 5.5 Datenbank Tuning 5.6 Partitionierung 5.7 Clustering 6. Quellen Seite 1

0. Einführung Microsoft SQL Server 2005 ist ein RDBMS (relationales Datenbank Management System) welches das alte SQL Server 2000 nach 5 Jahren Entwicklungszeit abgelöst hat. Wie Oracle mit PL/SQL hat auch Microsoft zusammen mit Cybase den SQL Standard mit der Sprache Transact-SQL (T-SQL) um Variablen, Funktionen, Prozeduren und Objekt Relationale Erweiterungen ausgebaut. Mit einer maximalen Speicherkapazität von einem ExaByte bietet der SQL Server 2005 die drittgrößte mögliche relationale Datenbank an, die nur noch von PostgreSQL und Oracle übertroffen wird. Der SQL Server 2005 ist ausschließlich für Windows-Plattformen entwickelt worden und bietet die Windows-typische grafische Benutzeroberfläche. Die mit der Version 2005 eingeführte enge Verknüpfung mit dem.net Framework ermöglicht es Entwicklern einfacher über die integrierte API auf die Datenbank zuzugreifen und.net Code direkt in der Datenbank Engine auszuführen. Der SQL Server ist von seiner Konzeption her ein direkter Konkurrent von Oracle und DB2 von IBM. Im Folgenden soll ein Einblick in den Aufbau, die Komponenten und Services des SQL Server 2005 gegeben werden. Weiterhin soll ein Vergleich zu Oracle 10g im Bereich der technischen Aspekte angestellt werden, der jedoch nicht auf Vorteile bzw. Nachteile hinweisen soll, sondern die Unterschiede beider DBMS aufzeigen soll. 1. Komponenten Der SQL Server 2005 beinhaltet neben der für ein DBMS wichtigsten Komponente, der Datenbank Engine, viele weitere Komponenten und Services. Datenbank-Engine: Die Engine ist das Kern Element des gesamten Pakets und beinhaltet Services zur Speicherung, Verarbeitung und Sicherung der Daten. Sie ist für den kontrollierten Zugriff auf die Daten, sowie für eine schnelle Verarbeitung von Anfragen und Transaktionen zuständig. Integration Services: Der Service wird verwendet um Daten aus verschiedenen Datenquellen Seite 2

zusammenzuführen und bilden somit die Grundlage für den Bereich Business-Intelligence, bei dem das Datawarehousing eine wichtige Rolle spielt. Hier werden ETL-Prozesse genutzt um Daten zu extrahieren, zu transformieren und die so bearbeiteten Daten in eine andere Datenquelle zu laden. Analytical Services: Sie sind für analytische Verarbeitung der durch die Integration Services bereitgestellten Daten zuständig. Es werden verschiedene Services für OLAP und Data Mining angeboten. Es werden MOLAP, ROLAP, HOLAP durch die OLAP-Engine unterstützt. Für Data Mining wird die DMX query language genutzt. Reporting Services: Eine Umgebung in der tabellarische, grafische oder formfreie Reports generiert werden, die klassisch oder per Web-Interface ausgewertet werden können. Hierzu werden die Integration Services genutzt, was ermöglicht, auch nicht persistente Datenquellen für Reports zu verwenden. Notification Services: Ein Service der Benachrichtigungen sendet, wenn ein bestimmtes Ereignis in der Datenbank eintritt. Dieser Service registriert sich als Trigger auf dem Datenbank-Server und versendet beim eintreten eines zuvor festgelegten Events eine Nachricht über den Service Broker, der die unterschiedlichen Komponenten zusammen synchronisiert, auf Basis des Nachrichtenaustauschs. Wird z.b. für die schnelle Übermittlung von Daten, die von Analyse Diensten erstellt wurden, verwendet. Replication Services: Wird zur Wiederherstellung und Synchronisierung der Daten in der Datenbank genutzt. Funktioniert wie eine Art Client/Server. Der DB-Server sendet eine Nachricht an alle Clients, diese wiederum aktualisieren ihren Datenbestand..NET Framework: umfasst Klassenbibliotheken (API's), Dienste, und eine Laufzeitumgebung. Es ermöglicht die Ausführung von Programmen, die speziell für das Framework programmiert wurden. Es erleichtert durch vorgegebene Standards, die Kommunikation zwischen verschiedenen Microsoft Diensten, wie dem SQL Server und z.b. dem Visual Studio, indem es Seite 3

Schnittstellen bereitstellt, die von beiden genutzt werden können. SQL-Server Management Studio: ist eine Umgebung in der die Komponenten des SQL Server verwaltet, konfiguriert und entwickelt werden. Ermöglicht den Zugriff auf den SQL Server über grafische Tools und Editoren. Weiterhin gibt es Werkzeuge für Monitoring, Management, Backup und Restore. 2. Architektur des SQL Server 2005 Der Microsoft SQL Server 2005 ist in 3 Hauptbestandteile aufgeteilt: SQLOS beinhaltet die Grundlegenden Dienste, die zur Ausführung des SQL Server notwendig sind. Es beinhaltet die Verwaltung von Threads und Speicher, sowie die Ein- und Ausgabeoperationen. Die Ralational Engine implementiert die relationalen Datenbankkomponenten, wie Tabellen, Anfgragen und Stored Procedures und das Typsystem mit dem die Datenbanken arbeiten. Der Protocol Layer ist die Schnittstelle zu anderen Anwendungen, außerhalb des SQL Server. 2.1 SQLOS SQLOS implementiert Funktionen, die sonst vom Betriebssystem übernommen werden, wie Ablaufplanung von Threads, Speicherverwaltung, Resourcenmanagement, Fehlerbehandlung und Deadlock Erkennung. Da eine Datenbank anders als ein Filesystem, wie es das Betriebssystem zur Verfügung stellt, auf die schnelle und effektive Verarbeitung von Daten spezialisiert ist und auch viel mehr Daten zu verwalten hat, wurde eine eigene Speicherverwaltung für den SQL Server programmiert. Auch weitere bereits erwähnte Bestandteile mussten dafür angepasst werden. SQLOS beinhaltet eine API, die es Programmierern ermöglicht, auf die im System vorhandene Hardware zuzugreifen, ohne dabei die technische Komplexität der Hardware verstehen zu müssen. Die Hauptbestandteile des SQLOS sind Nodes, Schedulers und Tasks. Die oberste Ebene bilden die Memory Nodes, denen die CPU Nodes untergeordnet sind. Jeder CPU Node beinhaltet mehrere Scheduler, der wiederum die einzelnen Tasks ordnet um sie dann auf der CPU auszuführen. SQLOS bietet somit Support für Programmierung paralleler Prozesse. Seite 4

2.2 Relational Engine Die relationale Engine implemtiert die Logik für die relationale Datenbank auf Basis der durch SQLOS bereitgestellten API. Hier werden die Datentypen definiert, die dann die Objekte charakterisieren, die in Tabellen gespeichert werden. Weiterhin werden hier Objekte wie Tabellen, Indizes, Logs und andere definiert, die gespeichert werden können. Sie beinhaltet eine Storage Engine, die die Speicherung von Daten auf persistenten Datenträgern und den schnellen Zugriff auf diese Daten verwaltet. Diese Engine implementiert Log- basierte Transaktionen, sodass alle Änderungen dem ACID Prinzip genügen. Sie beinhaltet weiterhin den Query- Prozessor, der die gespeicherten Daten abruft. Die SQL Anfrage definiert, welche Daten verändert oder gelesen werden sollen, der Query- Prozessor optimiert und übersetzt die Anfrage, sodass SQLOS sie versteht und teilt sie in Sequenzen auf, die beschreiben, welche Operationen nacheinander durchgeführt werden müssen um die Daten letztendlich zu ändern oder zu erhalten. 2.3 Protocol Layer Der Protocol Layer implementiert das externe Interface zum SQL Server. Alle Operationen, die auf dem SQL Server aufgerufen werden können, werden mittels eines von Microsoft definierten Formats kommuniziert, welches sich Tabular Data Stream (TDS) nennt. TDS ist ein Protokoll, das verwendet wird um den Transfer der Daten zwischen Datenbank-Server und Client durchzuführen. TDS kann in andere Kommunikationsprotokolle wie TCP/IP oder Pipes eingebaut werden. 3. Werkzeuge des SQL Server 2005 3.1 Object Explorer Der Objekt Explorer ist das zentrale Element zur Administration des SQL Server. Er bietet eine grafische Benutzeroberfläche, in der alle auf dem Server vorhandenen Datenbanken und Objekte Seite 5

(Tabellen + Spalten, Relationen, Indizes, Views, Stored Procedures und Trigger) angezeigt und verwaltet werden können. Hier kann man sich zu beliebigen Diensten verbinden und alle administrativen Tätigkeiten ausführen. Der Object Explorer verbindet sich zu Datenbank Instanzen, Analyse-, Integrations-, Reporting- Diensten. 3.2 Profiler Der Profiler dient zur Analyse von Aktivitäten, wie SQL Operationen, und gibt Ausführzeiten oder I/O-Lasten an. Er überwacht eine Instanz des SQL Server oder einen Analyse Service. Die Ergebnisse der Analyse können in einer Tabelle oder in einer Datei gespeichert werden, diese nennt man auch Ablaufverfolgungsdatei. Man kann so z.b. selbst programmierte Prozeduren überwachen, deren Ausführungszeiten analysieren und ggf. die Prozedur weiter optimieren. Probleme, die zu Fehlern führen können so ebenfalls analysiert werden. Vom Grundkonzept her ähnlich in der Funktionalität wie Profiler in der Anwendungsprogrammierung, wie dem Java Profiler. Aufgaben: Schrittweises Untersuchen problematischer Abfragen Untersuchen langsamer Abfragen Erfassen von problembehafteten T-SQL Abfragen (Replikation auf einem Testserver) Überwachung der Auslastung des SQL-Server (zur Optimierung) 3.3 Tuning Advisor Der Database Engine Tuning Advisor (DTA) dient der Analyse von SQL-Abfragen. Dies dient dem aufspüren sehr lang dauernder Transaktionen, für die der Advisor auch Verbesserungsvorschläge generieren kann. Dies umfasst sowohl Vorschläge für die strukturelle Anordnung der Daten und die Verteilung auf dem Speichermedium, als auch Vorschläge für mögliche Indizes auf bestimmten Spalten. Nach der Auswertung stellt der DTA ein Script für sinnvolle Änderungen und somit zur Optimierung der Datenbank zu Verfügung. Der DB-Administrator kann dann bequem die verschiedenen Vorschläge miteinander vergleichen und Änderungen an der Struktur der Daten vornehmen. Funktionsumfang: Seite 6

Empfehlen von Indizes auf bestimmten Spalten, Partitionen nach Arbeitsauslastung und indizierten Sichten Analysieren der Auswirkungen von vorgeschlagenen Änderungen gezielte Optimierung auf bestimmte Gruppen von kritischen Anfragen Berücksichtigen von Alternativen Vorschläge zur Anpassung 3.4 Activity Monitor der Activity Monitor ermöglicht die Überwachung aller Usersessions und deren Connections zur Datenbank Engine. Hier können vergebene Sperren und somit auch Dead-Locks analysiert werden um diese dann mit Hilfe anderer Werkzeuge zu beheben. Es können sowohl alle aktuellen Sperren der aktuellen Session, als auch Sperren auf bestimmten Objekten angezeigt werden. 3.5 Configuration Manager Mit dem Configuration Manager lassen sich die verschiedenen bereits erwähnten Dienste verwalten. Außerdem können hier die Netzwerkprotokolle konfiguriert werden, über die der SQL Server mit anderen Clients kommuniziert. Mit diesem Tool lassen sich die Dienst starten, anhalten, fortsetzen und beenden, oder Eigenschaften eines einzelnen Dienstes geändert werden. Es lassen sich im Bereich Protokollverwaltung die Server und Client-Protokolle bearbeiten und auch Verschlüsselung erzwingen. Vom SQL Server unterstützte Protokolle zur Übertragung sind: Shared Memory, TCP/IP, Named Pipes und VIA. 3.6 SQLCMD Dies ist ein Werkzeug mit dem interaktiv T-SQL Kommandos ausführen kann. Es ist mit der MySQL Konsole oder isql Plus von Oracle vergleichbar. Der Verbindung über den Kommandozeileneditor SQLCMD wird eine höhere Priorität in der Hierarchie der aktuellen Verbindungen gegeben, als einer regulären Benutzer- oder Applikationsverknüpfung. Die Ressourcen für diesen Prozess werden schon beim Start des SQL Server reserviert. Zweck Seite 7

dieser Anwendung ist, das trotz voller Beanspruchung aller Ressourcen der Administrator die Möglichkeit hat, im Fehlerfall notwendige Eingriffsmöglichkeiten zu haben um. Dieses Tool ist also ausschließlich für administrative Zwecke gedacht. 4. Services des SQL Server 2005 Die Services des SQL Server 2005 verstehen sich als so genannte Add-ons. Sie sind für den Betrieb nicht notwendig, liefern aber sinnvolle Funktionalitäten. Sie laufen teilweise innerhalb des SQL Server, als auch als eigenständige Windows-Prozesse mit eigener API. Die Grundideen der einzelnen Services sind unter dem 1. Komponenten zusammengefasst. Hier soll nochmal etwas detaillierter auf die einzelnen Services eingegangen werden. 4.1 Replikation Replikationen sind Technologien zum Kopieren und Verteilen von Daten und zur anschließenden Synchronisierung der gesendeten/empfangenen Daten mit dem eigenen Datenbestand. Der SQL Server unterstützt die folgenden 3 Arten der Replikation: Transaction Replication: Jede bei der Master Datenbank eingegangene Änderung des Datenbestandes wird mit allen aktuell mit der DB verbundenen Clients synchronisiert Merge Replication: Änderungen sowohl bei der Master- Datenbank als auch bei den Clients werden verfolgt und periodisch bidirektional kommuniziert und dann in den jeweiligen Server/Clients zusammengefügt. Wenn mehrere Änderungen auf einem bestimmten Objekt getätigt haben, entsteht ein Konflikt, der gelöst werden muss. Dies geschieht entweder über vordefinierte Regeln oder Manuell. Snapshot Replication: Die Snapshot Replication erzeugt eine komplette Kopie der gesamten Datenbank (Snapshot als aktuelle Ansicht auf die gesamte Datenbank in diesem Moment) und versendet diese an alle Clients, sodass diese den aktuellen Stand der Master Datenbank haben. Seite 8

4.2 Reporting SQL Server Reporting Services (SSRS) ist dazu gedacht Reports aus verschiedenen Datenquellen zu generieren. Dabei gibt es mehrere Möglichkeiten innerhalb der Report- Erstellung: relationale, multidimensionale und XML- Datenquellen. Es können alle möglichen multidimensionalen aus Datenbanken oder durch den Analyse Service erstellte Daten verwendet werden. Über ODBC kann auch auf Datenbanken anderer Anbieter zugegriffen werden. Layoutmöglichkeiten. tabellarisch - für spaltenbasierte Auswertungen, matix - für zusammengefasste Daten, diagramm - für grafische Auswertungen, formlos - für alles andere, Kombination mehrerer Layouts in einem Bericht Ad-Hoc Berichte aus dem Berichtsgenerator Drillthroughberichte und Interaktivität. Hyperlinks und Skriptausdrücke können nach belieben eingefügt werden Parametrisierte Berichte. Parameter um DataSets zu filtern Aggregationen. Zusammenfassungen von Daten mittels Summe, Mittelwert... um dies alles zu ermöglichen wird für die Reports eine spezielle Mark-Up Sprache namens RDL definiert. Somit können die Berichte auch in verschiedensten anderen Formaten exportiert werden (pdf, xml). User können direkt mit dem Report Manager kommunizieren, oder über eine vordefinierte Web-Schnittstelle darauf zugreifen. 4.3 Analysis SQL Server Analsysis Services (SSAS) stellt OLAP und Data-Mining Funktionalität zur Verfügung. Es werden sowohl Server- als auch Clientkomponenten zum Bereitstellen der OLAP Funktionen verwendet. Zur Architektur: Die Serverkomponente ist als Windows-Dienst implementiert Die Clients kommunizieren mittels eines SOAP-basierten Protokolls (XMLA) mit dem Service Abfragen werden mittels SQL oder MDX formuliert Seite 9

Grundkonzept ist UDM, das es dem Entwickler erlaubt ein universelles Modell für alle physikalischen Datenquellen zu erstellen. Es werden verschiedene Algorithmen für das Data Mining bereitgestellt, welche nach bestimmten Mustern oder Trends suchen können. Es gibt 2 verschiedene Service-Objekte: Datenbanken mit OLAP- und Data Mining Objekten, Cubes, Dimensionen, Attributen... Assemblys, die benutzerdefinierte Funktionen enthalten, die die Standardsprachen MDX und DMX systemintern erweitern 4.4 Notification Notfication Services bieten Abonnenten Abonnements für bestimmte Benachrichtigungsanwendungen, d.h. ein Interesse an bestimmten Ereignissen innerhalb der Datenbank. Ein Ereignis kann nach einem vordefinierten Zeitplan übermittelt werden, oder sofort bei eintreten. Dabei können diese Nachrichten an verschiedene Geräte, wie Mobiltelefone versendet werden. Der Notification Service selbst ist eine Programmierumgebung in dem Anwendungen geschrieben werden können, die solche Nachrichten versenden. Die Anwendung muss nach der Programmierung auf der Notification Plattform bereitgestellt werden. 4.5 Integration SQL Server Integration Services (SSIS) ist eine Plattform zur Erstellung von Datenintegrationslösungen, die aus mehreren Datenquellen Daten Extrahieren, diese auf ein einheitliches Format transformieren und anschließend in eine neue Datenquelle zusammengeführt laden (ETL). Der SSIS besteht aus 4 Komponenten: Dienst: Verwaltet die Speicherung und überwacht die Ausführung von SSIS Paketen Objektmodell: Verwaltet API für Schnittstelle zum Zugriff auf SSIS-Tools Laufzeit: Speichert Layout von Paketen und unterstützt die Protokollierung, Konfiguration, Verbindungen und Transaktionen Datenfluss: stellt Puffer im Arbeitsspeicher bereit mit denen Daten von der Quelle Seite 10

zum Ziel verschoben werden, es verwaltet die Transformationen auf den Daten 5. Vergleich SQL Server 2005 und Oracle 10g Microsoft bietet mit dem SQL Server 2005 ein im Umfang und der Funktionalität ähnliches Produkt wie Oracle mit der aktuellen Version 10g. In diesem Kapitel sollen beide DBMS miteinander verglichen werden. Dieser Vergleich soll keinen Sieger küren, sondern die Unterschiede und Gemeinsamkeiten der Beiden Produkte erläutern. 5.1 Daten Verwaltung Oracle 10g: Das Oracle DBMS speichert Daten auf 2 verschiedenen Ebenen. Die erste ist die logische Ebene, wo die Daten in so genannten Tablespaces gespeichert werden und der physischen Ebene, wo die Daten in Dateien organisiert sind. Die logische Ebene besteht aus einem oder mehreren Tablespaces. In der logischen Ebene werden die Benutzerdaten im SYSTEM Tablespace gespeichert. Ein Benutzer kann auf dem USERS Tabelspace mehrere Tabellen, Stored Procedures, Sequencen etc. haben. Jeder Benutzer ist als Schema in der Datenbank gespeichert und kann auch nur auf Tabellen innerhalb zugreifen, die für sein Schema freigegeben sind. Diese Zugriffsrechte sind im Data Dictionary, das sich ebenfalls im SYSTEM Tabelspace befindet, definiert. In der physischen Ebene gibt 3 Stufen, in denen die Daten organisiert sind. Die kleinste Stufe sind die Daten Blöcke (auch ORACLE Block oder Seite). Diese Blöcke können Index Blöcke und auch Datenblöcke sein. Oracle allokiert Speicherplatz in Form solcher Blöcke. Die nächst höhere Stufe sind die Extends. Ein Extend ist eine bestimmte Anzahl an zusammenhängenden Daten Blöcken. Ein Extend wird allokiert um Informationen eines bestimmten Typs zu speichern. Die höchste Stufe sind die Segmente. In einem Segment sind mehrere Extends vorhanden, die zu einem Tabelspace gehören. Wenn ein Extend im Segment voll ist, allokiert das Segment einen weiteren Extend hinzu, diese werden also nur bei Bedarf angehängt. Ein Datenblock ist somit die kleinste Einheit im System und ist so auf einem physischen Datenträger gespeichert. Über den Header des Blocks kann nun auf diesen zugegriffen werden, wenn er von der Platte gelesen werden soll. Seite 11

SQL Server: Einen Tablespace wie bei Oracle gibt es beim SQL Server nicht. Hier werden die Daten in separaten Datenbanken gespeichert. Wobei jede Datenbank von der anderen sowohl logisch als auch physisch unabhängig ist. In einer Datenbank sind jeweils deren Tabellen, Sequenzen, Trigger, Stored Procedures etc. gespeichert. Sie bildet nach außen hin ein geschlossenes Gebilde, sowohl physisch als auch logisch. Bei Oracle ist der USER Tablespace für alle Tabellen zuständig. Dadurch sind unterschiedliche Schemata indirekt durch die Speicherung miteinander verbunden und eine Oracle Instanz muss alle Daten Schemata auch die gerade nicht benötigten Verwalten. Somit ist es nicht möglich mehrere unabhängige Instanzen des Oracle Server laufen zu lassen, die auf den selben Tablespace zugreifen müssen. Beim SQL Server können Datenbanken jedoch komplett als eigenständiges Gebilde verwaltet werden und somit die Daten effektiver voneinander getrennt werden, wenn der Anwender mehrere Datenbanken verwalten möchte. Ähnlich zu Oracle 10g werden die Daten physikalisch in so genannten 8KB großen Pages gespeichert, das ist die grundlegende Einheit für I/O-Operationen des SQL Server. Wie bei Oracle gibt es Extends, diese sind aber nicht von variabler Größe, sondern beinhalten immer 8 Pages. Dabei kann es passieren, dass ein Datenbank Objekt alle 8 Pages des Extend belegt (uniform extend) oder sich bis zu 8 Objekte den Platz teilen (mixed extend). Eine Eintrag in einer Spalte der Datenbank kann nur auf eine Page geschrieben werden, ist somit auf 8 KB beschränkt. Sollte die Größe doch überschritten werden, muss der Eintrag in eine neue Page (oder eine Reihe von Pages) geschrieben werden (Alloction unit) und ein Zeiger zu diesen in die ursprüngliche Page gesetzt werden. 5.2 Indexierung Indexe sind für den schnellen Datenzugriff und können somit die Dauer von I/O-Operationen stark verkürzen, was die Performance einer Transaktion entscheidend verbessern kann. Die folgende Tabelle zeigt, welche Indexverfahren von den jeweiligen Systemen unterstützt werden. Seite 12

Indextyp Oracle 10g SQL Server 2005 B-Baum Index ü ü B-Baum Index (geclustert) ü ü Hash Index (geclustert) ü O Heap Index (ungeclustert) O ü Reverse Key Index ü O Bitmap Index ü O Bitmap join Index ü O Funktionsbasierter Index ü O Bereichs Index ü O Index-organisierte Tabellen ü ü Volltext Index O ü Sowohl Oracle als auch SQL Server bieten den B-Baum Index an, der eine geordnete Liste von Schlüsseln enthält, die auf den jeweiligen Dateneintrag auf dem Datenträger verweisen. Beide bieten diese Art des Index auch für geclusterte Indexierung. Oracle eigen sind die Bitmap Indizes. Hier werden nicht die Inhalte der einzelnen Zeilen aus der Tabelle im Index verwaltet, sondern ein Zeiger auf den Eintrag gesetzt, der die Bedingung erfüllt. Somit wird weniger Speicherplatz verbraucht, was jedoch zum ermitteln der Werte einen etwas höheren Rechenaufwand mit sich bringt. Bitmap Join Indizes enthalten Zeiger auf die Daten in den jeweils zu verknüpfenden Tabellen, sodass im besonderen Fall Joins gespart werden können, wenn zuvor Regeln dafür definiert wurden. Zusätzlich zu den B-Baum Indizes bietet SQL Server 2005 den Volltext Index, der auf der Windows Suchfunktion basiert. Hierbei führt nicht der SQL Server den Such-Task aus, sondern das OS auf dem er installiert ist. Da Windows immer den Search Service installiert hat, wird diese Aufgabe vom Betriebssystem ausgeführt. Das Problem dabei ist, das auch das OS den Index verwaltet und somit kein Backup oder Recovery möglich ist. Die Volltextsuche ermöglicht es Teile eines gesuchten Eintrages in Form von Strings einzugeben und dazu die betroffenen Spalten auszugeben. 5.3 Concurrency Control und Locking Seite 13

Die Überwachung gleichzeitig stattfindender Operationen auf dem selben Datenbestand einer Datenbank und die Sicherstellung der Konsistenz der Daten während parallel ablaufender Transaktionen, ist ein wichtiger Bestandteil eines DBMS. Bestandteile sind das Locking und die Isolation Levels. Beide Anbieter bieten die Möglichkeit schon vor Beginn irgendwelcher Transaktionen Sperren auf bestimmten Tabellen anzulegen. In der folgenden Tabelle ist gegenübergestellt, welche Sperren auf Tabellen jeweils möglich sind. Sperre (Oracle) Sperren(SQL Server 2005) RS (Row Shared) IS (Intent Shared) RX (Row Exclusive) IX (Intent Exclusive) S (Shared) S (Shared) SRX (Shared Row Exclusive) SIX (Shared Intent Exclusive) X (Exclusive) X (Exclusive) - U (Update) - BU (Bulk-Update) Exclusive DDL Lock Sch-M (Schema Modification) Shared DDL Lock Sch-S (Schema Shared) Oracle sowie SQL Server unterstützen beide alle gängigen Sperrverfahren. Zusätzlich bietet SQL Server noch 2 weitere Verfahren an um Tabellen zu sperren. Das wäre zum einen das Update Lock, welches zwischen dem Shared und dem Exclusive Lock liegt. Diese Art des Sperren wird verwendet, wenn noch nicht feststeht, ob eine Änderung in einer Tabelle stattfindet, sollte es zu einer Änderung kommen wird dieses Lock in Exclusive Lock automatisch umgewandelt, wenn nicht, dann wird es ein Shared Lock. Die Besonderheit hier ist, das 2 Update Locks nicht mit einander kompatibel sind. D.h. wenn bereits ein Update Lock vorliegt, wird kein weiteres gestattet, ein Shared Lock ist jedoch noch möglich, was bei einem SIX Lock nicht mehr möglich ist. Das BU ist dazu gedacht, wenn große Datenmengen in eine Tabelle geladen werden, diese zu sperren. Besonders ist hier, das auch das Auslesen der Struktur der Tabelle dabei unterbunden wird, d.h. Sch-S ist ebenfalls verboten, was bei allen anderen Sperren (außer Sch-M) jedoch erlaubt ist. Oracle und MS SQL Server bieten verschiedene Isolation Levels: Seite 14

Isolationlevel Oracle 10g SQL Server 2005 Read Committed ü ü Read Uncommitted O ü Repeatable Read O ü Serializable ü ü Read Only ü ü (Snapshot) Explizites Locking ü ü Beide Systeme unterstützen des Read Committed Level. Bei diesem sieht die aktuelle Transaktion ausschließlich die vor dem Beginn stattgefundenen Änderungen und arbeitet mit diesen. Das kann ein Unrepeatable Read, oder ein Phantom Read verursachen. SQL Server bietet zusätzlich noch das Read Uncommitted, was es einzelnen Transaktionen ermöglicht, uncommittete Änderungen von anderen Transaktionen zu sehen und das Repeatable Read, was sicherstellt, das auch bei wiederholtem Lesen die selben Ergebnisse erzielt werden können. Beide unterstützen mit Serializable die höchst mögliche Isolations-Ebene, in der die Transaktion ablaufen, als würden sie nacheinander durchgeführt. Das von Oracle 10g verwendete ReadOnly Verfahren ist dem Snapshotverfahren des SQL Server in der Wirkungsweise sehr ähnlich. Oracle stellt mit Versionsvergabe für die einzelnen Transaktionen sicher, das Daten, die jede einzelne Transaktion benötigt, auch beim Update durch eine andere Transaktion noch vorhanden ist. SQL Server dehnt dies soweit aus, das ein komplettes Abbild der zu bearbeitenden Daten gemacht wird und in einer neuen Datenbank (TempDB) gespeichert wird. Somit hat jede Transaktion ihre eigenen konsistenten Daten und es müssen keine exklusiven Sperren auf die Tabellen vergeben werden. Weiterhin bieten beide Anbieter die Möglichkeit das Locking selbst zu bestimmen. Bei beiden kann das Isolation Level transaktionsbezogen geändert werden, siehe Tabelle. 5.4 Backup und Recovery Backups werden dazu benötigt, um bei System-Crashes sicher zustellen, das alle Daten, die in der Datnebank vorhanden waren, wieder zur Verfügung gestellt werden können. Recovery Seite 15

ist wichtig, wenn ein System während der Laufzeit einen kritischen Fehler erzeugt und abstürtzt und noch nicht beendete Transaktionen auf der Datenbank ausgeführt wurde. In diesem Fall helfen Logs diese Transaktionen nachzuvollziehen und sie ggf. zu wiederholen, oder ungültig zu machen. Es gibt 4 verschiedene Arten eine Datenbank in Oracle mithilfe eines Backups zu sichern: Export/Import. Dies sind logische Backup Operationen, die logische Definitionen einer Datenbank in einer Datei speichern Offline Backup. Wenn die Datenbank vom Netz genommen wird, werden hier alle Daten, Logs und Kontroll- Dateien auf einen anderem Datenträger gesichert Online Backup. Hier wird das Backup während des laufenden Betriebes gemacht. Bei dieser Form des Backups müssen die Log-Files weiterlaufen um Änderungen während der Backup-Phase ebenfalls zu speichern. RMAN Backups. Hierzu wird der Recovery Manager von Oracle benutzt. Sollte eine Datenbankanwendung abstürzen, obwohl noch nicht alle Transaktionen beendet wurden, kommt das Recovery ins Spiel. Oracle hat zu diesem Zweck 3 wichtige Log-Dateien, die jeden Vorgang überwachen: Das Control File beinhaltet Informationen, wie den Datenbank Namen, Zeitstempel für die Erstellung der Datenbank, Namen der DDL Files und des Redo-Log-Files, sowie den letzten Checkpoint, an dem der Status der Datenbank vollständig gespeichert wurde. In die Online Redo Log Files werden alle Änderungen gespeichert, die während des laufenden Betriebes gemacht werden. In den Redo- Records werden neue Änderungen gespeichert, die eine Transaktion vorgenommen hat, in den Undo- Records werden die Daten vor der Änderung gespeichert, damit das System in jeder Situation die Möglichkeit hat, den korrekten Wert beim Recovery zu setzten. Die Archived Redo Log Files sind Redo Log Files, die nur noch Redo Informationen enthalten und bereits in ein Log Archiv gespeichert wurden. Der Recovery Manager bietet hier die einfachste Art und Weise seine Datenbank effektiv zu sichern. Der SQL Server 2005 bietet mehrere Strategien für das Recovery an: Seite 16

Simple. Ermöglicht es lediglich zum letzten vollständigen Backup zurückzugehen, da das Transactionlog hier nicht gespeichert wird. Full. Hier wird zusätzlich das Transaction Log gespeichert, sodass man zu jeder beliebigen Position vor dem Absturz zurückkehren kann Bulk Logged. Hier werden die normalen Datenbankoperationen in den Transaction Logs gespeichert, jedoch nicht die Erstellung von Indizes oder das laden per Bulk Load (siehe Bulk-Update unter Concurrency Control und Locking) Die wichtigste Datei beim SQL Server ist das Transaction Log File, das wie das Redo Log File von Oracle, alle Transaktionen aufzeichnet, um jeden beliebigen konsistenten Punkt wiederherstellen zu können. Die Methode des SQL Server wird Systemintern geregelt, man muss sich nur für eine der 3 oben genannten Methoden entscheiden. Oracle bietet mehr Vielfalt, ist aber auch komplizierter zu handhaben. 5.5 Datenbank Tuning Datenbank Tuning kann von Indexoptimierung, über Abfrageoptimierung, bis hin zu Änderungen an der Speicherverwaltung gehen. Hier soll ein kurzer Überblick in nicht technische Aspekte des Tunings. SQL Server und Oracle bieten unterschiedliche Möglichkeiten Aggregat-Funktionen die sich auf Spalten einer Zeile beziehen effektiver in Indizes zu speichern. Oracle bietet die Möglichkeit Indizes auf eine Funktion zu legen, die zu einer speziellen Spalte gehört. SQL Server bietet die Möglichkeit einen Index direkt auf der Spalte, deren Inhalt durch eine Funktion berechnet wird. Diese beiden Ansätze sind im Prinzip äquivalent und nennt sich "function based index". SQL Server gibt zusätzlich die Möglichkeit beim erstellen/ändern einer solchen Spalte das Schlüsselwort PERSISTED zu verwenden um anzuzeigen, das diese Spalte auch physisch gespeichert werden soll. Im Unterschied zu SQL Server ist bei Oracle 10g die durch den funktionsbasierten Index indirekt definierte Spalte nicht physisch in der Datenbank vorhanden. Ein solcher Index (Oracle) oder eine Spalte mit entsprechendem Index (SQL Server) kann die Performance bestimmter Anfragen, die sich auf eine Aggregation mehrerer Einträge in einer Zeile beziehen, stark verbessern. Auch im Bereich der Optimierung von Views gibt es unterschiedliche Konzepte auf beiden Seite 17

Seiten. SQL Server bietet die Indexed Views und Oracle die Materialized Views. Um große und teure Joins zu vermeiden, bietet Oracle Materialized Views, die einen View als Tabelle in der Datenbank speichern und so auch Informationen in einer Tabelle vereinen, die sonst über komplexe Joins errechnet werden müssten. SQL Server hingegen erzeugt einen Index auf einem bestimmten View, der phsikalisch gespeichert wird. Verwendet man einen Clustered Index auf dem ensprechenden View hat man das selbe Ergebnis wie der Materialised View von Oracle bietet. Nachteile hierbei ist jedoch, das man auf einen Index keine Funktionen wie DISTINCT, SUM, etc. anwenden kann, somit ist die Oracle Variante was die Auswertung betrifft leistungsstärker, verbraucht aber auch mehr Speicherplatz im Vergleich zum Index auf dem View. Beide Ansätze beinhalten das Problem, das bei starker Änderung der einzelnen Spalten, die auf den View Einfluss haben, auch der View angepasst werden muss. Dies Beeinflusst die Materialized Views stärker als die Index Views, da dort nur der Index angepasst werden muss. Diese Methode ist also nur sinnvoll, wenn die Anfragen schwerer wiegen, als die Änderungen der Basis-Tabellen. SQL Server bietet mit dem Tuning Advisor ein sehr nützliches Tool an, das beim Finden von optimalen Indizes, Sichten und Partitionen hilft. Dabei wertet es voll automatisch die Datenbank nach Struktur und häufigen Anfragen aus und macht Vorschläge für Optimierungen (siehe auch 3.3 Tuning Advisor). 5.6 Partitionierung Partitionierung erlaubt es große Tabellen, Indizes und komplexe Strukturen in kleinere Stücke aufzuspalten. Dieses Verfahren wird hauptsächlich zur Übersichtlichkeit und Wartbarkeit der Daten eingesetzt, bietet aber unter bestimmten Umständen auch Performance Verbesserungen. mögliche Partitionierungsmethoden für Tabellen sind: Aufteilen einer Tabelle indem die Tabelle horizontal aufgespalten wird, d.h. es werden die Zeilen einer Tabelle auf mehrere von der Struktur her gleiche Tabellen aufgeteilt. Ist z.b. bei einer Geschichts-Datenbank sehr nützlich, wenn sie in mehrere Zeiträume aufgeteilt wird. Seite 18

Hash- Partitionierung benutzt eine Hash-Funktion um die einzelnen Zeilen einer Tabelle neuen Tabellen zuzuordnen. Function Partitionierung bietet die Möglichkeit die Daten über eine bestimmte Funktion aufzuteilen Listen Partitionierung. In Listen kann genau definiert werden, in welcher Reihenfolge die Zeilen auf die jeweiligen Tabellen abgebildet werden sollen. gemischte Partitionierung erlaubt es mehrere Partitionierungs-Techniken anzuwenden. Wenn man z.b. eine Tabelle per Hash partitioniert und die Partitionen wieder mittels Listen in weitere Partitionen aufsplittet. mögliche Methoden für Indizes sind: Lokale Indizes sind von der Partitionierung her genauso aufgebaut, wie die zu Grunde liegenden partitionierten Tabellen. D.h. ein partitionierter Index gehört genau zu einer partitionierten Tabelle. global Partitionierte Indizes sind Indizes, die nicht nach Art der Tabelle partitioniert sind. Solch ein Index kann für eine partitionierte Tabelle, oder eine nicht partitionierte Tabelle angelegt werden nicht partitionierte Indizes sind normale Indizes, wie sie normaler Weise für eine nicht partitionierte Tabelle verwendet werden Von Oracle und SQL Server werden folgende Möglichkeiten zur Partitionierung angeboten: Partition Typ Oracle 10g SQL Server 2005 Range ü ü Hash ü O Function O ü List ü ü Composite ü O Lokale Indizes ü ü Globale Indizes ü ü SQL Server verfolgt mit dem funktionsbasiertem Partitionieren eine andere Strategie, als Oracle mit hashbasiertem Partitionieren. Durch Funktionen kann der Anwender viel genauer Seite 19