Mehr

Gibt es eine Möglichkeit, die Verzögerung beim automatischen Ausblenden für andockbare Fenster in ArcMap 10 zu verringern?

Gibt es eine Möglichkeit, die Verzögerung beim automatischen Ausblenden für andockbare Fenster in ArcMap 10 zu verringern?


Ich möchte, dass meine andockbaren Fenster etwas schneller ausgeblendet werden als jetzt. Handelt es sich um eine Benutzer- oder Anwendungseinstellung in ArcMap oder ArcGIS?

Weitere Details: Ich interessiere mich speziell für ArcMap, aber wenn es sich um eine Einstellung für den gesamten ArcGIS-Desktop handelt, nehme ich sie.


Durch Drücken der Escape-Taste wird das Fenster sofort ausgeblendet.


Wenn ja, wäre es wahrscheinlich im Dienstprogramm Erweiterte ArcMap-Einstellungen. Da dies nicht der Fall ist, glaube ich nicht, dass dies möglich ist – es sei denn, es gibt irgendwo eine .NET-weite Registrierungseinstellung, die auch von den ArcGIS-Anwendungen verwendet wird.


Das gesamte Material in diesem Patentdokument, einschließlich der Abbildungen, unterliegt dem Urheberrechtsschutz gemäß den Urheberrechtsgesetzen der Vereinigten Staaten und anderer Länder. Der Urheberrechtsinhaber hat keine Einwände gegen die Faksimile-Reproduktion des Patentdokuments oder der Patentoffenbarung, wie sie in offiziellen Regierungsakten erscheint, aber ansonsten sind alle anderen Urheberrechte vorbehalten.

1. Gebiet der vorliegenden Erfindung

Die vorliegende Erfindung bezieht sich allgemein auf die Modellierung und Simulation von Infrastrukturen und insbesondere auf die Modellierung und Simulation von Abhängigkeiten zwischen oder zwischen mehreren Infrastrukturen, die unterschiedlichen Typs sein können.

Die Zivilisation, wie wir sie heute kennen, ist bekanntlich auf unterschiedlichste Infrastrukturen aufgebaut oder angewiesen. Die Infrastrukturen, die uns am besten bekannt sind, sind die physischen Infrastrukturen der Zivilisation, wie Stromnetze, Gasverteilungsnetze, Transportnetze (einschließlich Straßen, Schienennetze, Wasserwege, Luftfahrt und dergleichen) sowie Informations- und Telekommunikationssysteme. Andere physische Infrastrukturen können landwirtschaftliche und nahrungsmittelbezogene Infrastrukturen, Wasserverteilungs- und -rückgewinnungsnetze und -infrastrukturen, öffentliche Gesundheits- und Rettungsdienstinfrastrukturen, Regierungsinstitutionen und -infrastrukturen, verteidigungsindustrielle Basisinfrastrukturen, Banken- und Finanznetze (einschließlich wirtschaftlicher) Netze und Infrastrukturen, chemische Industrie umfassen und Gefahrstoffsysteme und -infrastrukturen, nationale Denkmäler und Ikonen und dergleichen. Einige von ihnen werden oft als „kritische“ Infrastrukturen bezeichnet, weil sie für eine bestimmte geopolitische Einheit als so wichtig angesehen werden, dass die Unfähigkeit oder Zerstörung solcher Systeme und Vermögenswerte schwächende Auswirkungen auf Kontrolle oder Verteidigung, wirtschaftliche Sicherheit und öffentliche Gesundheit haben würde oder Sicherheit, oder eine Kombination dieser Angelegenheiten.

FEIGE. 1 ist eine grafische Darstellung einiger der kritischsten physischen Infrastrukturen, die heute bekannt sind. Wie daraus ersichtlich ist, stehen diese Infrastrukturen in vielfältiger Weise miteinander in Beziehung, von denen einige darin dargestellt sind. Erdöl liefert beispielsweise Kraft- und Schmierstoffe für Fahrzeuge in der Transportindustrie, die wiederum für den Transport von Materialien in der Erdgasindustrie verwendet werden. Erdgas wird in der Elektrizitätswirtschaft verwendet, deren Strom wiederum die Telekommunikationsindustrie unterstützt. Telekommunikation stellt SCADA und Kommunikation für Wasserwerke bereit, und Wasser wird in der Erdölindustrie zur Produktion, Kühlung und Emissionsreduzierung verwendet. Eine große Vielfalt zusätzlicher Abhängigkeiten, von denen einige in Fig. 1 dargestellt sind. 1, sind ebenfalls bekannt.

Die heutige Zivilisation hängt jedoch nicht nur von physischen Systemen oder Vermögenswerten wie den in Fig. 1 gezeigten Infrastrukturen ab. 1, aber auch auf mindestens zwei weitere umfassende Kategorien von Infrastrukturen. Eine weitere zugrundeliegende Grundlage der heutigen Zivilisation ist beispielsweise das Verhalten von Menschen oder Gruppen von Menschen als Reaktion auf verschiedene Reize, Phänomene, die manchmal als „Bevölkerungsverhalten“ bezeichnet werden. Bevölkerungsverhaltensmodelle sind nützlich, um entstehende Muster situativer menschlicher Interaktionen und räumlicher Bewegungen zu untersuchen und zu simulieren, einschließlich solcher Phänomene wie Verkehrsmuster, Massenbewegungen, Krankheitsübertragung, Gebietseintritt und -austritt und dergleichen. Wie bei physikalischen Infrastrukturmodellen können solche Modelle räumliche Beziehungen einbeziehen, konzentrieren sich jedoch eher auf Verhaltensmuster und -phänomene als auf die physikalischen (nicht-menschlichen) Beziehungen zwischen verschiedenen Elementen eines oder mehrerer physikalischer Phänomene.

Ein weiteres Grundgerüst der heutigen Zivilisation umfasst die verschiedenen sozialen Netzwerke, die existieren und jedes Segment der Zivilisation verbinden, die zusammenfassend als „immaterielle Beziehungen und Einflüsse“ oder „soziale Netzwerke“ bezeichnet werden können. Modelle dieser Art sind nützlich, um sowohl formelle als auch informelle Organisationen von Menschen zu untersuchen und zu simulieren. Zu den formellen Organisationen können Regierungsorganisationen, politische Organisationen, Wirtschaftsorganisationen, religiöse Organisationen und andere nichtstaatliche Organisationen gehören. Informationsorganisationen können Clans, Familien, Menschen, die durch gemeinsame Glaubenssysteme verbunden sind, Freundschaften und Bekanntschaften und dergleichen umfassen.

Wie hierin verwendet, kann sich der Begriff „Infrastruktur“ auf jeden grundlegenden Rahmen oder jede zugrunde liegende Grundlage beziehen, die sich auf einen physischen, relationalen oder verhaltensbezogenen Aspekt einer Zivilisation bezieht, wobei „Verhaltensinfrastrukturen“ als Infrastrukturen definiert sind, die die Art und Weise, wie Menschen oder Gruppen von Menschen einbeziehen, umfassen verhalten sich als Reaktion auf verschiedene Stimuli, „relationale Infrastrukturen“ werden als Infrastrukturen definiert, die durch menschliche Interaktionen in einem der verschiedenen sozialen Netzwerke geschaffen werden, die in verschiedenen Bevölkerungsgruppen einer Zivilisation existieren und diese verbinden, und „physische Infrastrukturen“ werden als Infrastrukturen definiert, die physische Vermögenswerte oder Systeme. Darüber hinaus bezieht sich der Begriff „Netzwerk“, wie er hier verwendet wird, obwohl er manchmal austauschbar mit dem Begriff „Infrastruktur“ verwendet wird, im Allgemeinen kollektiv auf die verschiedenen Verbindungen zwischen oder zwischen Elementen einer gegebenen Infrastruktur und nicht auf die Infrastruktur als Ganzes. In physischen Infrastrukturen haben solche Netzwerke oft eine physische Relevanz, aber in vielen Infrastrukturen und insbesondere in Verhaltens- und relationalen Infrastrukturen haben Netzwerke möglicherweise keine direkte physische Relevanz.

Um zu verstehen, wie eine gegebene Infrastruktur funktioniert, wenden Forscher, Planer, Regierungsbehörden und andere Parteien mit unterschiedlichen Interessen an der Infrastruktur in der Regel erhebliche Anstrengungen auf, um verschiedene Aspekte der Infrastruktur zu untersuchen. Insbesondere wurde der Betrieb einer Vielzahl von Infrastrukturen mit unterschiedlich ausgereiften Werkzeugen simuliert, um die Wirkung verschiedener (interner und externer) Stimuli auf den Betrieb der jeweiligen Infrastruktur untersuchen zu können. Angesichts der großen Unterschiede zwischen den verschiedenen Arten von Infrastrukturen haben diese Bemühungen gemeinsam eine große Anzahl von Menschen mit extrem unterschiedlichen technologischen Hintergründen oder Interessen mit einer Vielzahl von Techniken beteiligt. Da die Computertechnologie jedoch immer ausgefeilter wurde, wurden komplexe Softwaremodelle entwickelt, die es ermöglichen, riesige Datenmengen zu analysieren, die die verschiedenen Elemente jeder Infrastruktur und deren Zusammenhänge darstellen. Leider wurden solche Softwaremodelle im Allgemeinen erstellt, um sich jeweils nur auf eine einzige Infrastruktur zu konzentrieren. Diese wenigen Softwaremodelle, die in der Lage sind, mehr als eine Infrastruktur gleichzeitig zu simulieren, sind auf die Simulation von Infrastrukturen nur eines einzigen Typs beschränkt. Somit wird ein softwarebasierter Simulationsansatz benötigt, der in der Lage ist, auf einer generischen Basis eine Vielzahl von Modellen zu handhaben, die Infrastrukturen unterschiedlicher grundlegender Typen oder Kategorien darstellen.

Darüber hinaus haben sich auch solche softwarebasierten Simulationsansätze, die in der Lage sind, die Zusammenhänge zwischen oder zwischen mehreren Infrastrukturen zumindest teilweise zu modellieren, nur in Teilbereichen durchgesetzt. Insbesondere waren diese Ansätze bei der Modellierung der Wechselbeziehungen zwischen oder zwischen kritischen Infrastrukturen, wie dieser Begriff hierin oben definiert ist, unzulänglich. Vielleicht noch mehr als einige andere Arten von Infrastrukturen umfassen kritische Infrastrukturen in der Regel mehrdimensionale, hochkomplexe Sammlungen von Technologien, Prozessen und Personen und sind daher auf vielen Ebenen anfällig für potenziell katastrophale Ausfälle (absichtlich oder unabsichtlich). Aufgrund ihrer Bedeutung und grundlegenden Beziehung zum Alltag einer Zivilisation und ihrer verschiedenen geopolitischen Einheiten ist es oft besonders nützlich, diese kritischen Infrastrukturen und ihre Wechselbeziehungen untereinander zu untersuchen. Leider kann man angesichts der Breite und Tiefe dieser Infrastrukturen leicht Merkmale beobachten, die das Problem des Schutzes der kritischen Infrastrukturen eines Landes im Allgemeinen unlösbar machen. Der Schlüssel zu diesen Merkmalen ist die inhärente Komplexität dieser Infrastrukturen, die jeweils ein einzigartiges Forschungsgebiet mit zahlreichen offenen Problemen in Bezug auf Organisation, Betrieb und Entwicklung definieren. Diese Herausforderungen und die daraus resultierenden Gefahren werden durch zahlreiche inhärente Interdependenzen, die zwischen kritischen Infrastrukturen bestehen, vergrößert, die im Allgemeinen sehr stark, zeitkritisch und wesentlich sind. Das Ergebnis ist ein brüchiges „System von Systemen“, das zu katastrophalen Ereignissen führen kann, da ein Ausfall (beabsichtigt oder unbeabsichtigt) kaskadiert und über Infrastrukturen eskaliert.

Trotz seiner inhärenten Schwierigkeiten ist das Problem des Verständnisses des Verhaltens kritischer Infrastrukturen und ihrer Interdependenz ein fester Bestandteil etablierter Disziplinen wie Stadt- und Regionalplanung, Bau- und Umweltingenieurwesen, Operations Research, Landschaftsarchitektur und Notfallmanagement. Dies wurde beispielsweise von Kaiser et al. in Urban Land Use Planning, 4. Aufl., veröffentlicht von University of Illinois Press (Urbana, Ill. 1995), das hier durch Bezugnahme eingeschlossen ist. In jüngerer Zeit erhält es als zentrales Forschungsgebiet zunehmende Aufmerksamkeit aus dem aufstrebenden Gebiet der Geoinformationswissenschaft und -technologie („GI S&T“), darunter in Sinton, DF: „Reflections on 25 years of GIS“, GIS World Vol . 5. Nr. 2 (1992) ("Sinton") und in 1-8 UCGIS: University Consortium for Geographic Information Science (2003), die jeweils hierin durch Bezugnahme aufgenommen sind. Forscher der GI W&T-Community haben hauptsächlich drei verschiedene Ansätze verwendet, um das Verhalten und die räumliche Interdependenz kritischer Infrastrukturen zu untersuchen. In einem ersten Ansatz, der manchmal auch als Geodatenanalyse („SDA“) bezeichnet wird, haben Forscher die Interdependenz kritischer Infrastrukturen mit Werkzeugen aus der Raumstatistik und der Ökonometrie untersucht. Dies ist beispielsweise beschrieben in Cressie, N.: „Statistics for Spatial Data“, herausgegeben von John Wiley (Chichester, 1991) und Haining, R.: „Spatial data analysis in the social and Environmental Sciences“, herausgegeben von Cambridge University Press (Cambridge, UK, 1990), von denen jede hierin durch Bezugnahme aufgenommen ist. In einem zweiten Ansatz werden geografische Korrelationen zwischen kritischen Infrastrukturkomponenten mit traditionellen Kartenüberlagerungsmethoden für die Aggregation von Geodaten in GIS-Umgebungen abgebildet. Dies wurde beispielsweise beschrieben in Burrough, P. A.: „Methods of Spatial Analysis in GIS“, veröffentlicht im International Journal of Geographical Information Systems, Vol. 2, No. 4. Nr. 3 (1990), 221-223 Goodchild, MF und Kemp, KK: NCGIA Kerncurriculum (University of California in Santa Barbara, Kalifornien, 1990) und Greene, RW: „Confronting Catastrophe: a GIS Handbook“ ( ESRI Press, Redlands Calif., 2002), die hier jeweils durch Bezugnahme aufgenommen sind. In einem dritten Ansatz werden regelbasierte Inferenzmaschinen verwendet, die normalerweise von menschlichem Expertenwissen angetrieben werden, um die Interdependenz abzugrenzen und zu manipulieren. Dies wurde zum Beispiel von Gronlund, A. G. et al. beschrieben: „GIS, expert systems technologies Improve Forest Fire Management Techniques“, veröffentlicht in GIS World, Vol. 2, No. 7. Nr. 2 (1994), Seiten 32-36, und Xiang, W.-N.: "Knowledge-based Decision Support by CRITIC", veröffentlicht in Environment and Planning B: Planning and Design, Vol. 7, No. 24. Nr. 1 (1997), Seiten 69-79, von denen jede hierin durch Bezugnahme eingeschlossen ist. Leider adressieren diese Ansätze, obwohl sie informativ sind, das Problem bezüglich der Auswirkungen der Interdependenzen kritischer Infrastrukturen nicht ausreichend.

Folglich haben viele angesehene GI-W&T-Forscher einen mehrdimensionalen Ansatz zur Untersuchung des Verhaltens und der räumlichen Interdependenz kritischer Infrastrukturen befürwortet. Beschrieben wird dieser Ansatz beispielsweise in Getis, A.: „Spatial dependence and heterogeneity and proximal databases“, in Spatial Analysis and GIS (Hrsg.: FotheringHam, S. und Rogerson, P.) (Taylor & Francis, London, 1994), Seiten 105-120 ("Getis"), die hier durch Bezugnahme eingeschlossen ist, und Sinton. Statt „Teile-und-Herrsche“ schlugen sie eine Strategie vor, die die Stärken der drei oben beschriebenen unterschiedlichen Ansätze vereint und die Interdependenz aus allen drei Blickwinkeln untersucht. Trotz einiger ernsthafter Bemühungen, wie sie beispielsweise in Anselin, L. und Getis, A.: „Spatial Statistical analysis and geographic information systems“, veröffentlicht in Annals of Regional Science, Vol. 26 (1992), Seiten 19-33 Flowerdew, Green: „A real interpolation and types of data“, in Spatial Analysis and GIS (Hrsg.: FotheringHam, S. und Rogerson, P.) (Taylor & Francis, London, 1994 ), Seiten 121-145 Getis und Openshaw: „Two exploratory space-time-attribute pattern analyzers relevant to GIS“, in Spatial Analysis and GIS (Hrsg.: FotheringHam, S. und Rogerson, P.) (Taylor & Francis, London , 1994), Seiten 82–104, von denen jede hierin durch Bezugnahme aufgenommen ist, muss der Fortschritt auf diesem Weg noch die Erwartungen der Befürworter erfüllen. Der Status quo wird durch einige neuere Veröffentlichungen veranschaulicht, in denen wenige oder gar keine mehrdimensionalen GI-W&T-basierten Ergebnisse berichtet wurden, darunter Mitchell, A.: „The ESRI Guide to GIS Analysis“ (ESRI Press, Redlands, Calif., 1999) und Zeiler, M.: „Modeling Our World: the ESRI Guide to Geodatabase Design“ (ESRI Press, Redlands, Calif., 1999), die hier jeweils durch Bezugnahme aufgenommen werden.

Es gibt auch mehrere funktionsreiche GI-W&T-Visualisierungstools (z. B. ESRI ArcGIS), um kritische Infrastrukturkomponenten auf Karten und Satellitenbildern zu überlagern. Diese Tools unterstützen häufig die Modellierung und Simulation einzelner Infrastrukturen – z. B. Analysen, die die Auswirkungen einer ausgefallenen Stromleitung auf die Stromverteilung bestimmen können. Bis heute sind solche Modelle jedoch relativ statisch und unterstützen keine Interaktionen über Infrastrukturschichten hinweg.

Ein komplexerer Ansatz kann durch die Modellierung und Simulation der Abhängigkeiten von kritischen Infrastrukturen geboten werden. Obwohl im Allgemeinen noch von keiner der oben beschriebenen Disziplinen versucht, hat dieser Ansatz in der Modellierungs- und Simulationsgemeinschaft einige Aufmerksamkeit erregt. Zum Beispiel Rinaldi, SM et al.: „Identifying, Understanding, and Analysis Critical Infrastructure Interdependencies“, veröffentlicht im IEEE Control Systems Magazine (Dezember 2001), Seiten 11-25 („Rinaldi et al.“), das hierin aufgenommen ist schlagen Sie als Referenz eine Taxonomie zum Identifizieren, Verstehen und Analysieren von Abhängigkeiten von kritischen Infrastrukturen basierend auf dem Interdependenztyp vor. Rinaldiet al. behaupten auch, dass intelligente agentenbasierte Techniken zum Modellieren solcher Interdependenzen geeignet sein können. Die Anwendung intelligenter agentenbasierter Techniken auf Modellierungs- und Simulationsprobleme ist für viele Problembereiche gut bekannt, wie beispielsweise in Weiss, G. Hrsg.: Multiagent Systems (MIT Press, 1999) ("Weiss"), die hierin durch Bezugnahme aufgenommen ist. Leider sind keine Anwendungen dieses Ansatzes zur Integration kritischer Infrastrukturen bekannt.

Das Problem des Verständnisses des Verhaltens kritischer Infrastrukturen und ihrer Interdependenz bleibt ein schwieriges, offenes Problem. Die Grenzen eindimensionaler Ansätze sind keineswegs trivial. Mehrdimensionale GI-W&T-Ansätze haben zwar theoretisch vielversprechend, aber nur wenige Ergebnisse erbracht. Während Modellierung und Simulation zu einem besseren Verständnis des Verhaltens kritischer Infrastrukturen führen können, ist darüber hinaus keine Lösung des Standes der Technik mit der der vorliegenden Erfindung vergleichbar.

Angesichts all des Vorhergehenden besteht ein Bedarf an einem softwarebasierten Simulationsansatz, der in der Lage ist, auf einer generischen Basis eine Vielzahl von Modellen zu handhaben, die Infrastrukturen unterschiedlicher grundlegender Typen darstellen. Darüber hinaus besteht ein besonderer Bedarf an einem softwarebasierten Simulationsansatz, der in der Lage ist, eine Vielzahl von Modellen zu handhaben, die unterschiedliche kritische Infrastrukturen darstellen. Schließlich besteht ein Bedarf an einem "Softwareagenten"-basierten Ansatz zum Modellieren und/oder Simulieren einer oder mehrerer kritischer Infrastrukturen mit Intra-Abhängigkeiten und/oder Interdependenzen.


Microsoft SQL Server 2016 ein Handbuch für Anfänger [Sechste Ausgabe] 9781259641800, 1259641805, 9781259641794, 1259641791

Copyright © 2017 von McGraw-Hill Education. Alle Rechte vorbehalten. Sofern nicht nach dem United States Copyright Act von 1976 erlaubt, darf kein Teil dieser Veröffentlichung in irgendeiner Form oder mit irgendwelchen Mitteln reproduziert oder verbreitet oder ohne vorherige schriftliche Genehmigung des Herausgebers in einer Datenbank oder einem Abrufsystem gespeichert werden. ISBN: 978-1-25-964180-0 MHID: 1-25-964180-5 Das Material in diesem eBook erscheint auch in der gedruckten Version dieses Titels: ISBN: 978-125-964179-4, MHID: 1-25 -964179-1. eBook-Konvertierung von codeMantra Version 1.0 Alle Warenzeichen sind Warenzeichen ihrer jeweiligen Eigentümer. Anstatt nach jedem Auftreten eines markenrechtlich geschützten Namens ein Markensymbol zu setzen, verwenden wir die Namen nur in redaktioneller Weise und zum Vorteil des Markeninhabers, ohne die Absicht einer Verletzung der Marke. Wo solche Bezeichnungen in diesem Buch erscheinen, wurden sie mit Anfangsbuchstaben gedruckt. McGraw-Hill Education eBooks sind zu speziellen Mengenrabatten erhältlich, um sie als Prämien und Verkaufsförderungsaktionen oder zur Verwendung in Unternehmensschulungen zu verwenden. Um einen Vertreter zu kontaktieren, besuchen Sie bitte die Kontaktseite unter www.mhprofessional.com. Informationen wurden von McGraw-Hill Education aus Quellen bezogen, die als zuverlässig erachtet werden. Aufgrund der Möglichkeit menschlicher oder mechanischer Fehler durch unsere Quellen, McGraw-Hill Education oder andere, garantiert McGraw-Hill Education jedoch nicht die Genauigkeit, Angemessenheit oder Vollständigkeit der Informationen und ist nicht verantwortlich für Fehler oder Auslassungen oder die Ergebnisse aus der Verwendung dieser Informationen. NUTZUNGSBEDINGUNGEN Dies ist ein urheberrechtlich geschütztes Werk und McGraw-Hill Education und seine Lizenzgeber behalten sich alle Rechte an dem Werk vor. Die Nutzung dieses Werkes unterliegt diesen Bedingungen.Sofern nicht nach dem Urheberrechtsgesetz von 1976 und dem Recht zum Speichern und Abrufen einer Kopie des Werks zulässig, dürfen Sie nicht dekompilieren, disassemblieren, zurückentwickeln, reproduzieren, modifizieren, abgeleitete Werke erstellen, die darauf basieren, übertragen, verteilen, verbreiten, verkaufen, die Arbeit oder Teile davon ohne vorherige Zustimmung von McGraw-Hill Education veröffentlichen oder unterlizenzieren. Sie dürfen das Werk für Ihren eigenen nichtkommerziellen und persönlichen Gebrauch verwenden. Jede andere Verwendung des Werks ist strengstens untersagt. Ihr Recht zur Nutzung des Werks kann beendet werden, wenn Sie diese Bedingungen nicht einhalten. DIE ARBEIT WIRD „WIE BESEHEN“ BEREITGESTELLT. McGRAW-HILL EDUCATION UND SEINE LIZENZGEBER GEBEN KEINE GARANTIEN ODER GEWÄHRLEISTUNGEN BEZÜGLICH DER

GENAUIGKEIT, ANGEMESSENHEIT ODER VOLLSTÄNDIGKEIT ODER ERGEBNISSE, DIE DURCH DIE NUTZUNG DES ARBEITS ZU ERHALTEN WERDEN, EINSCHLIESSLICH ALLER INFORMATIONEN, DIE ÜBER DAS WERK PER HYPERLINK ODER ANDERWEITIG ZUGREIFEN KÖNNEN, UND AUSDRÜCKLICH JEGLICHE GARANTIE, AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH NICHT ODER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. McGraw-Hill Education und seine Lizenzgeber garantieren oder garantieren nicht, dass die in der Arbeit enthaltenen Funktionen Ihren Anforderungen entsprechen oder dass der Betrieb unterbrechungs- oder fehlerfrei ist. Weder McGraw-Hill Education noch seine Lizenzgeber haften Ihnen oder anderen gegenüber für Ungenauigkeiten, Fehler oder Auslassungen, unabhängig von der Ursache, in der Arbeit oder für daraus resultierende Schäden. McGraw-Hill Education übernimmt keine Verantwortung für den Inhalt von Informationen, auf die durch die Arbeit zugegriffen wird. Unter keinen Umständen haften McGraw-Hill Education und/oder seine Lizenzgeber für indirekte, zufällige, besondere, Straf-, Folge- oder ähnliche Schäden, die sich aus der Nutzung oder Unmöglichkeit der Nutzung des Werks ergeben, selbst wenn einer von ihnen darauf hingewiesen wurde der Möglichkeit solcher Schäden. Diese Haftungsbeschränkung gilt für alle Ansprüche oder Ursachen, unabhängig davon, ob diese Ansprüche oder Ursachen vertraglich, aus unerlaubter Handlung oder auf andere Weise entstehen.

Gewidmet meiner Frau Sibille.

Über den Autor Dušan Petković ist Professor am Fachbereich Informatik der Fachhochschule Rosenheim. Er ist Bestsellerautor von fünf Ausgaben von SQL Server: A Beginner’s Guide und hat zahlreiche Artikel für das SQL Server Magazine verfasst.

Über den Technischen Redakteur Todd Meister ist seit über 20 Jahren in der IT-Branche tätig. Er war technischer Redakteur bei über 75 Titeln, von SQL Server bis zum .NET Framework. Neben der technischen Redaktion von Büchern ist er Assistant Vice President/Chief Enterprise Architect an der Ball State University in Muncie, Indiana. Er lebt mit seiner Frau Kimberly und ihren fünf aufgeweckten Kindern in Zentral-Indiana.

Inhalt auf einen Blick Teil I

Grundkonzepte und Installation

Relationale Datenbanksysteme: Eine Einführung

Planung der Installation und Installation von SQL Server

SQL Server Management Studio

Änderung des Inhalts einer Tabelle

Gespeicherte Prozeduren und benutzerdefinierte Funktionen

Sicherheitssystem der Database Engine

SQL Server: Systemverwaltung

Systemumgebung der Database Engine

Sicherung, Wiederherstellung und Systemverfügbarkeit

Automatisieren von Systemverwaltungsaufgaben

SQL Server und Business Intelligence

Business Intelligence: Eine Einführung

SQL Server Analysis Services

Business Intelligence und Transact-SQL

SQL Server Reporting Services

Optimierungstechniken für Data Warehousing

XML- und JSON-Integration in die Datenbank-Engine

Räumliche und zeitliche Daten

SQL Server-Volltextsuchindex

Grundlegende Konzepte und Installation Relationale Datenbanksysteme: Eine Einführung Datenbanksysteme: Ein Überblick Verschiedene Benutzerschnittstellen Physische Datenunabhängigkeit Logische Datenunabhängigkeit Abfrageoptimierung Datenintegrität Parallelitätskontrolle Sicherung und Wiederherstellung der Datenbanksicherheit Relationale Datenbanksysteme Arbeiten mit der Beispieldatenbank des Buches SQL: Eine relationale Datenbank Sprachdatenbankdesign Normalformen Entity-Relationship-Modell Syntaxkonventionen Zusammenfassungsübungen

Planung der Installation und Installation von SQL Server SQL Server-Editionen und -Verwaltungskomponenten Component

SQL Server Editions Verwaltungskomponenten Planungsphase Allgemeine Empfehlungen Planung der Installation Installieren von SQL Server Zusammenfassung Kapitel 3 Chapter

SQL Server Management Studio Einführung in SQL Server Management Studio Herstellen einer Verbindung mit einem Server Registrierte Server Object Explorer Organisieren und Navigieren der Fensterbereiche von SQL Server Management Studio Verwenden von SQL Server Management Studio mit dem Datenbankmodul Verwalten von Datenbankservern Verwalten von Datenbanken Verwenden des Object Explorer Erstellungsaktivitäten Verwenden von SQL Server Management Studio Abfrage-Editor Solution Explorer SQL Server-Debugging-Zusammenfassungsübungen Exercise

Transact-SQL-Sprache SQL-Komponenten SQL-Literalwerte für grundlegende Objekte

Bezeichner Trennzeichen Kommentare Reservierte Schlüsselwörter Datentypen Numerische Datentypen Zeichendatentypen Temporale Datentypen Sonstige Datentypen Speicheroptionen Transact-SQL-Funktionen Aggregatfunktionen Skalarfunktionen Skalaroperatoren Globale Variablen NULL-Werte Zusammenfassungsübungen Kapitel 5

Datendefinitionssprache Erstellen von Datenbankobjekten Erstellen einer Datenbank CREATE TABLE: Eine Grundform CREATE TABLE und deklarative Integritätsbeschränkungen Referentielle Integrität Erstellen anderer Datenbankobjekte Integritätsbeschränkungen und Domänen Ändern von Datenbankobjekten Ändern einer Datenbank

Ändern einer Tabelle Entfernen von Datenbankobjekten Zusammenfassungsübungen Kapitel 6

Abfragen SELECT-Anweisung: ihre Klauseln und Funktionen WHERE-Klausel GROUP BY-Klausel Aggregatfunktionen HAVING-Klausel ORDER BY-Klausel SELECT-Anweisung und IDENTITY-Eigenschaft CREATE SEQUENCE-Anweisung Set-Operatoren CASE-Ausdrücke Unterabfragen Unterabfragen und Vergleichsoperatoren Unterabfragen und die IN-Operator-Unterabfragen und ANY- und ALL-Operatoren Temporäre Tabellen Join-Operator Zwei Syntaxformen zur Implementierung von Joins Natural Join Kartesischer Product Outer Join Weitere Formen von Join-Operationen Korrelierte Unterabfragen Unterabfragen und die EXISTS-Funktion

Sollten Sie Joins oder Unterabfragen verwenden? Tabellenausdrücke Abgeleitete Tabellen Allgemeine Tabellenausdrücke Zusammenfassungsübungen Kapitel 7

Änderung des Inhalts einer Tabelle INSERT-Anweisung Einfügen einer einzelnen Zeile Einfügen mehrerer Zeilen Tabellenwertkonstruktoren und INSERT UPDATE-Anweisung DELETE-Anweisung Andere T-SQL-Änderungsanweisungen und -Klauseln TRUNCATE TABLE-Anweisung MERGE-Anweisung Die OUTPUT-Klausel Zusammenfassungsübungen

Gespeicherte Prozeduren und benutzerdefinierte Funktionen Prozedurale Erweiterungen Anweisungsblock IF-Anweisung WHILE-Anweisung Lokale Variablen Sonstige prozedurale Anweisungen Ausnahmebehandlung mit TRY, CATCH und THROW

Stored Procedures Erstellen und Ausführen von Stored Procedures Stored Procedures und CLR-Benutzerdefinierte Funktionen Erstellen und Ausführen von benutzerdefinierten Funktionen Ändern der Struktur von UDFs Benutzerdefinierte Funktionen und CLR-Übersichtsübungen Kapitel 9

Systemkatalog Einführung in den Systemkatalog Allgemeine Schnittstellen Katalogansichten Dynamische Verwaltungsansichten und -funktionen Informationsschema Proprietäre Schnittstellen System Stored Procedures Systemfunktionen Eigenschaftsfunktionen Zusammenfassungsübungen

Indizes Einführung Clustered-Indizes Nonclustered-Indizes Transact-SQL und Indizes Erstellen von Indizes

Bearbeiten von Indexinformationen Ändern von Indizes Entfernen und Umbenennen von Indizes Richtlinien zum Erstellen und Verwenden von Indizes Indizes und Bedingungen in der WHERE-Klausel Indizes und der Join-Operator Index abdecken Besondere Arten von Indizes Zusammenfassungsübungen Kapitel 11

Views DDL-Anweisungen und Views Erstellen einer View Ändern und Entfernen von Views DML-Anweisungen und Views Abrufen von Views INSERT-Anweisung und eine View UPDATE-Anweisung und eine View DELETE-Anweisung und eine View Bearbeiten von Informationen zu Views Zusammenfassungsübungen

Sicherheitssystem der Datenbank-Engine Verschlüsselung von Daten Symmetrische Schlüssel Asymmetrische Schlüssel Zertifikate

Bearbeiten von Benutzerschlüsseln Erweiterbare Schlüsselverwaltungsmethoden der Datenverschlüsselung Authentifizierung Einrichten der Datenbanksystemsicherheitsschemas Benutzerschematrennung DDL-Schemabezogene Anweisungen Standarddatenbankschemas Datenbanksicherheit Verwalten der Datenbanksicherheit mit SQL Server Management Studio Verwalten der Datenbanksicherheit mithilfe von Transact-SQL-Anweisungen Feste Rollen Serverrollen Feste Datenbankrollen Anwendungsrollen Benutzerdefinierte Serverrollen Benutzerdefinierte Datenbankrollen Authorization GRANT-Anweisung DENY-Anweisung REVOKE-Anweisung Verwalten von Berechtigungen mit SQL Server Management Studio Verwalten der Autorisierung und Authentifizierung von enthaltenen Datenbanken Änderungsverfolgung Datensicherheit und Ansichten Zusammenfassung

Parallelitätssteuerung Parallelitätsmodelle Transaktionen Eigenschaften von Transaktionen Transact-SQL-Anweisungen und -Transaktionen Transaktionsprotokoll-Sperren Sperrmodi Sperrgranularität Sperreskalation Auswirkungen auf Sperren Anzeigen von Sperrinformationen Deadlock-Isolationsstufen Parallelitätsprobleme Datenbankmodul und Isolationsstufen Zeilenversionierung Lesen Committed Snapshot-Isolation Übersichtsübungen zur Snapshot-Isolation

Trigger Einführung Erstellen eines DML-Triggers Ändern der Struktur eines Triggers Verwenden gelöschter und eingefügter virtueller Tabellen

Anwendungsbereiche für DML-Trigger AFTER-Trigger STATT Trigger Erster und letzter Trigger DDL-Trigger und ihre Anwendungsbereiche Trigger auf Datenbankebene Trigger auf Serverebene Trigger und CLR-Zusammenfassungsübungen

SQL Server: Systemverwaltung

Systemumgebung des Datenbankmoduls Systemdatenbanken master Datenbankmodell Datenbank tempdb Datenbank msdb Datenbank Festplattenspeicher Eigenschaften von Datenseiten Typen von Datenseiten Parallele Verarbeitung von Aufgaben Dienstprogramme und der DBCC-Befehl Dienstprogramm bcp Dienstprogramm sqlcmd Dienstprogramm sqlservr Dienstprogramm DBCC-Befehl Richtlinienbasierte Verwaltung

Wichtige Begriffe und Konzepte zur Verwendung richtlinienbasierter Management-Zusammenfassungsübungen Kapitel 16

Sicherungs-, Wiederherstellungs- und Systemverfügbarkeitsgründe für Datenverlust Einführung in Sicherungsmethoden Vollständige Datenbanksicherung Differenzielle Sicherung Transaktionsprotokollsicherung Datei- oder Dateigruppensicherung Durchführen einer Datenbanksicherung Sicherung mit Transact-SQL-Anweisungen Sicherung mit SQL Server Management Studio Bestimmen der zu sichernden Datenbanken Durchführen einer Datenbankwiederherstellung Automatische Wiederherstellung Manuelle Wiederherstellung Wiederherstellungsmodelle Systemverfügbarkeit Verwenden eines Standby-Servers Verwenden von RAID-Technologie Datenbankspiegelung Failover-Clustering Protokollversand AlwaysOn-Vergleich von Hochverfügbarkeitskomponenten Wartungsplan-Assistent

Zusammenfassungsübungen Kapitel 17

Automatisieren von Systemverwaltungsaufgaben Starten des SQL Server-Agenten Erstellen von Jobs und Operatoren Erstellen eines Jobs und seiner Schritte Erstellen eines Jobzeitplans Benachrichtigen von Operatoren über den Jobstatus Anzeigen des Jobverlaufsprotokollwarnungen Fehlermeldungen SQL Server-Agent-Fehlerprotokoll Windows-Anwendungsprotokoll Definieren von Warnungen zur Behandlung von Fehlern Zusammenfassung Error Übungen

Datenreplikation Verteilte Daten und Methoden zum Verteilen der SQL Server-Replikation: Ein Überblick Herausgeber, Verteiler und Abonnenten Veröffentlichungen und Artikel Agenten Die Verteilung Datenbankreplikationstypen Replikationsmodelle Verwalten der Replikation Konfigurieren der Verteilungs- und Veröffentlichungsserver

Einrichten von Publikationen Konfigurieren von Abonnementservern Zusammenfassungsübungen Kapitel 19

Abfrageoptimierer Phasen der Abfrageverarbeitung Funktionsweise der Abfrageanalyse Indexauswahl Auswahl der Join-Reihenfolge Auswahl der Join-Verarbeitung Plan-Caching-Tools zum Bearbeiten der Optimiererstrategie SET-Anweisung SQL Server Management Studio und grafische Ausführungspläne Beispiele für Ausführungspläne Dynamische Verwaltungsansichten und Hinweise zum Abfrageoptimierer Optimierer Gründe für die Verwendung von Optimierungshinweisen Arten von Optimierungshinweisen Zusammenfassung

Faktoren zur Leistungsoptimierung, die sich auf die Leistung von Datenbankanwendungen und Leistung auswirken Datenbankmodul und Leistung Systemressourcen und Leistung der Leistungsüberwachung

Performance Monitor: Ein Überblick Überwachen der CPU Überwachen des Speichers Überwachen des Festplattensystems Überwachen der Netzwerkschnittstelle Auswahl des richtigen Tools für die Überwachung SQL Server Profiler Database Engine Tuning Advisor Andere Leistungstools des Database Engine Query Store Performance Data Collector Ressourcenkontrolle Live Query Statistics Summary Übungen Exercise Kapitel 21

In-Memory OLTP Speicheroptimierte Tabellen Fixierte Tabellen als Vorgänger von speicheroptimierten Tabellen Erstellen speicheroptimierter Tabellen Zeilen- und Indexspeicher Zeilenspeicher Indexspeicher In-Memory OLTP und Concurrency Control Logging speicheroptimierter Objekte Optimistic Multiversion Concurrency Control Zugriff auf den Inhalt von Content Speicheroptimierte Tabellen interpretiert Transact-SQL-kompilierte gespeicherte Prozeduren

Bearbeiten von Informationen zu In-Memory-Objekten Eigenschaftsfunktionen Katalogansichten Dynamische Verwaltungsansichten Tools für In-Memory-OLTP Speicherverwaltung für In-Memory-OLTP: Übersicht Speicherverwaltungstools Migrationstools für In-Memory-OLTP Zusammenfassung

SQL Server und Business Intelligence Business Intelligence: Eine Einführung Online-Transaktionsverarbeitung vs. Business Intelligence Online-Transaktionsverarbeitung Business Intelligence-Systeme Data Warehouses und Data Marts Data Warehouse-Design Cubes und ihre Architekturen Aggregation Physischer Speicher eines Cubes Zusammenfassung der Datenzugriffsübungen

Mehrdimensionales Modell von SQL Server Analysis Services Terminologieeigenschaften von SSDT

Erstellen und Verarbeiten eines mehrdimensionalen Würfels Bereitstellen von Daten aus dem mehrdimensionalen Modell Tabellenmodell Workspace-Datenbank Erstellen einer Lösung mit tabellarischem Modell Bereitstellen und Verarbeiten des tabellarischen Projekts Bereitstellen von Daten aus dem mehrdimensionalen Modell des tabellarischen Projekts vs. tabellarisches Modell Analysis Services: Zusammenfassungsübungen zur Datensicherheit Kapitel 24

Business Intelligence- und Transact-SQL-Fensterkonstruktpartitionierung Sortierung und Framing Erweiterungen von GROUP BY CUBE Operator ROLLUP-Operator Gruppierungsfunktionen Gruppierungssätze OLAP-Abfragefunktionen Ranking-Funktionen Statistische Aggregatfunktionen Standard- und Nichtstandard-Analysefunktionen TOP-Klausel OFFSET/FETCH NTILE-Funktion Pivoting Data

Zusammenfassungsübungen Kapitel 25

SQL Server Reporting Services-Berichte: Eine Einführung SQL Server Reporting Services-Architektur Reporting Services Windows-Dienst Berichtskatalog Installation und Konfiguration von Reporting Services Installation von SSRS Konfiguration von SSRS Erstellen von Berichten Erstellen Ihres ersten Berichts Erstellen eines parametrisierten Berichts Erstellen eines Berichts mithilfe eines Diagramms Verwalten und Optimieren Berichte Leistungsprobleme des Reporting Services-Webportals Reporting Services-Sicherheit Authentifizierungs-Autorisierungszusammenfassung Übungen

Optimieren von Techniken für das Data Warehousing Datenpartitionierung Wie das Datenbankmodul Daten partitioniert Schritte zum Erstellen von partitionierten Tabellen Partitionierungstechniken zur Steigerung der Systemleistung

Richtlinien zum Partitionieren von Tabellen und Indizes Optimierung von Sternverknüpfungen Indizierte oder materialisierte Ansichten Erstellen einer indizierten Ansicht Ändern der Struktur einer indizierten Ansicht Bearbeiten von Informationen zu indizierten Ansichten Vorteile von indizierten Ansichten Zusammenfassung Kapitel 27

Columnstore-Indizes Vorteile von Columnstore-Indizes Speicherung von Columnstore-Indizes Indexspeicherung Komprimierung Abfrageplan Ausführungsarten von Columnstore-Indizes Clustered Columnstore-Index Nonclustered Columnstore-Index Zusammenfassungsübungen

Jenseits relationaler Daten XML- und JSON-Integration in die Datenbank-Engine XML: Eine Einführung XML-Elemente XML-Attribute XML-Namespaces XML und World Wide Web

XML-bezogene Sprachen Schemasprachen Dokumenttyp-Definition XML-Schema Speichern von XML-Dokumenten in der Datenbank-Engine Speichern von XML-Dokumenten Verwenden des XML-Datentyps Speichern von XML-Dokumenten Verwenden der Dekomposition Präsentieren und Abfragen von XML-Dokumenten Präsentieren von XML-Dokumenten als relationale Daten Präsentieren relationaler Daten als XML-Dokumente Abfragen von XML Dokumente JSON: Eine Einführung XML vs. JSON Warum JSON in SQL unterstützen? Speichern von JSON-Dokumenten in der Datenbank-Engine Präsentieren und Abfragen von JSON-Dokumenten Präsentieren von JSON-Dokumenten als relationale Daten Präsentieren relationaler Daten als JSON-Dokumente Abfragen von JSON-Dokumenten Zusammenfassung Kapitel 29

Räumliche und zeitliche Daten Räumliche Datenmodelle zur Darstellung räumlicher Daten GEOMETRY Datentyp GEOGRAPHY Datentyp GEOMETRY vs. GEOGRAPHY Externe Datenformate Arbeiten mit räumlichen Datentypen

Arbeiten mit dem Datentyp GEOMETRY Arbeiten mit dem Datentyp GEOGRAPHY Räumliche Indizes Bearbeiten von Informationen zu räumlichen Daten Temporale Tabellen Erstellen von Temporalen Tabellen Temporale Tabellen und DML-Anweisungen Abfragen von Temporalen Daten Konvertieren praktischer Tabellen in temporäre Tabellen Zusammenfassung Kapitel 30

Einführung in die SQL Server-Volltextsuche Token, Worttrennungen und Stopplisten Operationen für Token Relevanzbewertung Funktionsweise von SQL Server FTS Indizieren von Volltextdaten Indizieren von Volltextdaten mithilfe von Transact-SQL Indizieren von Volltextdaten mithilfe von SQL Server Management Studio-Abfragen Volltextdaten FREETEXT Prädikat CONTAINS Prädikat FREETEXTTABLE Funktion CONTAINSTABLE Funktion Erweiterte Eigenschaften suchen Informationen zu Volltextdaten bearbeiten Zusammenfassung Übung Technet24

Hier sind einige Gründe, warum SQL Server, das System, das aus Database Engine, Analysis Services, Reporting Services und Integration Services besteht, die beste Wahl für ein breites Spektrum von Endbenutzern und Datenbankprogrammierern ist, die Geschäftsanwendungen erstellen: SQL Server ist sicherlich das beste System für Windows-Betriebssysteme aufgrund seiner engen Integration (und des niedrigen Preises). Da die Zahl der installierten Windows-Systeme enorm ist und immer noch steigt, ist SQL Server ein weit verbreitetes Datenbanksystem. Die Datenbank-Engine als relationale Datenbanksystemkomponente ist das am einfachsten zu verwendende Datenbanksystem. Neben der bekannten Benutzeroberfläche bietet Microsoft mehrere verschiedene Tools, mit denen Sie Datenbankobjekte erstellen, Ihre Datenbankanwendungen optimieren und Systemverwaltungsaufgaben verwalten können. Im Allgemeinen ist SQL Server nicht nur ein relationales Datenbanksystem. Es handelt sich um eine Plattform, die nicht nur strukturierte, semistrukturierte und unstrukturierte Daten verwaltet, sondern auch umfassende, integrierte Betriebs- und Analysesoftware bietet, die es Unternehmen ermöglicht, geschäftskritische Informationen zuverlässig zu verwalten.

Ziele des Buches Microsoft SQL Server 2016: A Beginner's Guide folgt fünf früheren Ausgaben, die SQL Server 7, 2000, 2005, 2008 und 2012 behandelt haben erfolgreich damit arbeiten wird dieses Buch sehr hilfreich finden. Wenn Sie ein neuer SQL Server-Benutzer sind, aber SQL verstehen, lesen Sie den Abschnitt „Unterschiede zwischen SQL- und Transact-SQL-Syntax“ weiter unten in dieser Einführung. Dieses Buch richtet sich an Benutzer verschiedener Komponenten von SQL Server. Aus diesem Grund ist es in mehrere Teile gegliedert: Die ersten drei Teile sind am nützlichsten für Benutzer, die mehr über die relationale Datenbankkomponente von Microsoft namens Database Engine erfahren möchten. Der vierte Teil des Buches ist Business Intelligence (BI)-Benutzern gewidmet, die Analysis Services und/oder Reporting Services verwenden. Der letzte Teil des Buches bietet Einblicke für Benutzer, die Funktionen über die relationalen Daten hinaus erlernen möchten, wie z. B. die Integration verschiedener Formate (XML und JSON) mit der relationalen Engine sowie

zeitliche und räumliche Daten.

Neue Funktionen von SQL Server 2016 im Buch beschrieben SQL Server 2016 bietet viele neue Funktionen, von denen fast alle in diesem Buch behandelt werden. Für jede Funktion wird mindestens ein laufendes Beispiel bereitgestellt, damit Sie diese Funktion besser verstehen können.Die folgende Tabelle listet und fasst die wichtigsten neuen Funktionen zusammen und identifiziert die Kapitel, in denen sie behandelt werden.

Aufbau des Buches Das Buch hat 30 Kapitel und ist in fünf Teile gegliedert. Teil I, „Grundlegende Konzepte und Installation“, beschreibt das Konzept von Datenbanksystemen und erläutert die Installation von SQL Server 2016 und seinen Komponenten. Es umfasst die folgenden Kapitel:

Kapitel 1, „Relationale Datenbanksysteme: Eine Einführung“, behandelt Datenbanken im Allgemeinen und die Datenbank-Engine im Besonderen. Der Begriff der Normalformen und die Beispieldatenbank werden hier vorgestellt. Das Kapitel stellt auch die Syntaxkonventionen vor, die im Rest des Buches verwendet werden. Kapitel 2, „Planen der Installation und Installieren von SQL Server“, beschreibt die erste Aufgabe der Systemverwaltung: die Installation des Gesamtsystems. Obwohl die Installation von SQL Server eine einfache Aufgabe ist, gibt es bestimmte Schritte, die eine Erklärung erfordern. Kapitel 3, „SQL Server Management Studio“, beschreibt die Komponente namens SQL Server Management Studio. Diese Komponente wird zu Beginn des Buches vorgestellt, falls Sie ohne SQL-Kenntnisse Datenbankobjekte erstellen und Daten abfragen möchten. Teil II, „Transact-SQL-Sprache“, richtet sich an Endbenutzer und Anwendungsprogrammierer der Datenbank-Engine. Es besteht aus folgenden Kapiteln: Kapitel 4, „SQL-Komponenten“, beschreibt die Grundlagen des wichtigsten Teils eines relationalen Datenbanksystems: einer Datenbanksprache. Für all diese Systeme zählt nur eine Sprache: SQL. In diesem Kapitel werden alle Komponenten der eigenen Sprache der Database Engine, genannt Transact-SQL, beschrieben. In diesem Kapitel finden Sie auch die grundlegenden Sprachkonzepte und Datentypen. Schließlich werden Systemfunktionen und Operatoren von Transact-SQL beschrieben. Kapitel 5, „Datendefinitionssprache“, beschreibt alle DDL-Anweisungen (Data Definition Language) von Transact-SQL. Die DDL-Anweisungen werden je nach Zweck in drei Gruppen unterteilt. Die erste Gruppe enthält alle Formen der CREATE-Anweisung, mit der Datenbankobjekte erstellt werden. Die zweite Gruppe enthält alle Formen der ALTER-Anweisung, die verwendet wird, um die Struktur einiger Datenbankobjekte zu ändern. Die dritte Gruppe enthält alle Formen der DROP-Anweisung, die zum Entfernen verschiedener Datenbankobjekte verwendet wird. Kapitel 6, „Abfragen“, behandelt die wichtigste Transact-SQL-Anweisung: SELECT. Dieses Kapitel führt Sie in das Abrufen von Datenbankdaten ein und beschreibt die Verwendung einfacher und komplexer Abfragen. Jede SELECT-Klausel wird separat definiert und mit Bezug auf die Beispieldatenbank erklärt. Kapitel 7, „Ändern des Inhalts einer Tabelle“, erläutert die vier Transact-SQL-Anweisungen, die zum Aktualisieren von Daten verwendet werden: INSERT, UPDATE, DELETE und MERGE. Jede dieser Aussagen wird durch zahlreiche Beispiele erläutert. Kapitel 8, „Gespeicherte Prozeduren und benutzerdefinierte Funktionen“, beschreibt prozedurale Erweiterungen, mit denen leistungsstarke Programme erstellt werden können, die als gespeicherte Prozeduren und benutzerdefinierte Funktionen (UDFs) bezeichnet werden

auf dem Server und kann wiederverwendet werden. Da Transact-SQL eine vollständige Computersprache ist, sind alle prozeduralen Erweiterungen untrennbare Teile der Sprache. Einige gespeicherte Prozeduren werden von Benutzern geschrieben, andere werden von Microsoft bereitgestellt und als gespeicherte Systemprozeduren bezeichnet. In diesem Kapitel wird auch die Implementierung von Stored Procedures und UDFs mit der Common Language Runtime (CLR) behandelt. Kapitel 9, „Systemkatalog“, beschreibt einen der wichtigsten Teile eines Datenbanksystems: Systemtabellen und Katalogsichten. Der Systemkatalog enthält Tabellen, in denen die Informationen zu Datenbankobjekten und deren Beziehungen gespeichert werden. Das Hauptmerkmal von Systemtabellen der Database Engine (Datenbankmodul) ist, dass auf sie nicht direkt zugegriffen werden kann. Das Database Engine (Datenbankmodul) unterstützt mehrere Schnittstellen, mit denen Sie den Systemkatalog abfragen können. Kapitel 10, „Indizes“, behandelt die erste und leistungsstärkste Methode, mit der Datenbankanwendungsprogrammierer ihre Anwendungen optimieren können, um eine bessere Systemreaktion und damit eine bessere Leistung zu erzielen. Dieses Kapitel beschreibt die Rolle von Indizes und gibt Ihnen Richtlinien für deren Erstellung und Verwendung. Am Ende des Kapitels werden die speziellen Typen von Indizes vorgestellt, die von Database Engine (Datenbankmodul) unterstützt werden. Kapitel 11, »Views«, erklärt, wie Sie Views erstellen, erläutert die praktische Verwendung von Views (anhand zahlreicher Beispiele) und zeigt, wie Views mit SELECT-, INSERT-, UPDATE- und DELETE-Anweisungen verwendet werden können. Kapitel 12, „Sicherheitssystem des Datenbankmoduls“, bietet Antworten auf alle Ihre Fragen zur Sicherheit von Daten in der Datenbank. Es behandelt Fragen zur Datenverschlüsselung, Authentifizierung (welcher Benutzer hat legitimen Zugriff auf das Datenbanksystem erhalten) und Autorisierung (welche Zugriffsrechte für einen bestimmten Benutzer gültig sind). Drei Transact-SQL-Anweisungen – GRANT, DENY und REVOKE – werden erörtert, die die Zugriffsrechte von Datenbankobjekten gegen unbefugten Zugriff bereitstellen. Außerdem wird in diesem Kapitel erläutert, wie Datenänderungen mit der Database Engine (Datenbankmodul) nachverfolgt werden können. Kapitel 13, „Concurrency Control“, beschreibt die Parallelitätskontrolle ausführlich. Am Anfang des Kapitels werden die zwei verschiedenen Parallelitätsmodelle erläutert, die von Database Engine (Datenbankmodul) unterstützt werden. Alle Transact-SQL-Anweisungen im Zusammenhang mit Transaktionen werden ebenfalls erläutert. Locking als Methode zur Lösung von Parallelitätssteuerungsproblemen wird weiter diskutiert. Am Ende des Kapitels erfahren Sie, was Isolationsstufen und Zeilenversionen sind. Kapitel 14, „Trigger“, beschreibt die Implementierung von Geschäftslogik mithilfe von Triggern. Jedes Beispiel in diesem Kapitel betrifft ein Problem, mit dem Sie in Ihrem täglichen Leben als Datenbankanwendungsprogrammierer möglicherweise konfrontiert werden. Die Implementierung von verwaltetem Code für Trigger mit CLR wird ebenfalls in dem Kapitel gezeigt.

Teil III, „SQL Server: Systemverwaltung“, beschreibt alle Ziele der Systemverwaltung von Database Engine (Datenbankmodul). Es umfasst die folgenden Kapitel: Kapitel 15, „Systemumgebung des Datenbankmoduls“, behandelt einige interne Probleme des Datenbankmoduls. Es enthält eine detaillierte Beschreibung der Plattenspeicherelemente von Database Engine (Datenbankmodul), Systemdatenbanken und Dienstprogramme. Kapitel 16, „Sicherung, Wiederherstellung und Systemverfügbarkeit“, bietet einen Überblick über die Fehlertoleranzmethoden, die verwendet werden, um eine Sicherungsstrategie mithilfe von SQL Server Management Studio oder entsprechenden Transact-SQL-Anweisungen zu implementieren. Das Kapitel befasst sich zunächst mit den Gründen für Datenverlust und spezifiziert die verschiedenen Methoden zur Implementierung einer Backup-Strategie. In der Mitte des Kapitels wird die Durchführung von Datenbanksicherungen und die Wiederherstellung von Datenbanken erläutert. Das Kapitel beschreibt dann im Detail (und vergleicht) die folgenden Techniken für die Systemverfügbarkeit: Datenbankspiegelung, Failover-Clustering, Protokollversand und AlwaysOn. Das Kapitel schließt mit einer Beschreibung, wie Sie Ihre Datenbank mit Hilfe des Wartungsplan-Assistenten pflegen. Kapitel 17, „Automatisieren von Systemverwaltungsaufgaben“, beschreibt die Datenbankmodulkomponente namens SQL Server Agent, mit der Sie bestimmte Aufgaben der Systemverwaltung automatisieren können, z. B. das Sichern von Daten und die Verwendung der Planungs- und Warnfunktionen zur Benachrichtigung von Bedienern. In diesem Kapitel wird auch erklärt, wie Jobs, Operatoren und Warnungen erstellt werden. Kapitel 18, „Datenreplikation“, bietet eine Einführung in die Datenreplikation, einschließlich Konzepten wie Herausgeber und Abonnent. Es stellt die verschiedenen Replikationsmodelle vor und dient als Tutorial zum Konfigurieren von Veröffentlichungen und Abonnements mit den vorhandenen Assistenten. Kapitel 19, „Abfrageoptimierer“, beschreibt die Rolle und die Arbeit des Abfrageoptimierers. Es erläutert ausführlich alle Datenbankmodul-Tools (die SET-Anweisung, SQL Server Management Studio und verschiedene dynamische Verwaltungsansichten), die zum Bearbeiten der Optimierungsstrategie verwendet werden können. Am Ende des Kapitels finden Sie Optimierungshinweise. Kapitel 20, „Leistungsoptimierung“, behandelt Leistungsprobleme und die Tools zur Optimierung des Datenbankmoduls, die für die tägliche Verwaltung des Systems relevant sind. Nach einführenden Hinweisen zu den Leistungsmessungen beschreibt dieses Kapitel die Faktoren, die die Leistung beeinflussen, und stellt Tools zur Überwachung des Datenbankmoduls vor. Kapitel 21, „In-Memory OLTP“, ist ein neues Kapitel in dieser Ausgabe des Buches. Es beschreibt In-Memory OLTP (Online Transactional Processing), eine neue Komponente der Database Engine, mit der OLTP-Abfragen optimiert werden können. Das heisst

dass ein Benutzer erhebliche Leistungsverbesserungen erzielen kann, wenn bestimmte Datenbankobjekte vollständig im Speicher statt auf der Festplatte gespeichert werden. Das Kapitel beschreibt ausführlich die Verwendung von speicheroptimierten Tabellen und kompilierten gespeicherten Prozeduren, die Teil von In-Memory OLTP sind. Teil IV, „SQL Server und Business Intelligence“, behandelt Business Intelligence (BI) und alle damit verbundenen Themen. Die Kapitel in diesem Teil des Buches stellen Microsoft Analysis Services und Microsoft Reporting Services vor. Auch SQL/OLAP und bestehende Optimierungstechniken zur relationalen Datenhaltung werden ausführlich beschrieben. Dieser Teil umfasst die folgenden Kapitel: Kapitel 22, „Business Intelligence: Eine Einführung“, führt in den Begriff des Data Warehousing ein. Im ersten Teil des Kapitels werden die Unterschiede zwischen Online-Transaktionsverarbeitung und Data Warehousing erläutert. Der Datenspeicher für einen Data Warehousing-Prozess kann entweder ein Data Warehouse oder ein Data Mart sein. Beide Arten von Datenspeichern werden diskutiert und ihre Unterschiede werden im zweiten Teil des Kapitels aufgelistet. Am Ende des Kapitels werden verschiedene Formen des Datenzugriffs erläutert. Kapitel 23, „SQL Server Analysis Services“, stellt das semantische BI-Modell vor, das zwei Untermodelle enthält: Mehrdimensional und tabellarisch. Beide Modelle werden in diesem Kapitel ausführlich erklärt. Eine kurze Beschreibung der MDX- und DAX-Sprachen wird ebenfalls gegeben. Am Ende des Kapitels werden Sicherheitsaspekte von SSAS diskutiert. Kapitel 24, „Business Intelligence und Transact-SQL“, erläutert, wie Sie mit Transact-SQL Business Intelligence-Probleme lösen können. Dieses Kapitel bespricht das Fensterkonstrukt mit seiner Partitionierung, Anordnung und Gestaltung. In diesem Kapitel werden auch mehrere Operatoren, Rangfunktionen, die TOP-Klausel und der relationale PIVOT-Operator behandelt. Kapitel 25, „SQL Server Reporting Services“, beschreibt die Microsoft-Lösung für die Berichterstellung für Unternehmen. Diese Komponente wird zum Erstellen und Bereitstellen von Berichten verwendet. Das Kapitel erläutert die Entwicklungsumgebung, die Sie zum Entwerfen und Erstellen von Berichten verwenden, und zeigt Ihnen verschiedene Möglichkeiten zum Bereitstellen eines bereitgestellten Berichts. Am Ende des Kapitels finden Sie eine Beschreibung der Performance- und Sicherheitsaspekte in Bezug auf SQL Server Reporting Services. Kapitel 26, „Optimierungstechniken für Data Warehousing“, beschreibt drei der verschiedenen spezifischen Optimierungstechniken, die insbesondere im Bereich Business Intelligence verwendet werden können: Datenpartitionierung, Star-Join-Optimierung und indizierte Ansichten. Die Datenpartitionierungstechnik, die als Bereichspartitionierung bezeichnet wird, wird beschrieben. In Bezug auf die Stern-Join-Optimierung wird die Rolle von Bitmap-Filtern bei der Optimierung von Joins erläutert. Der letzte Teil des Kapitels erklärt die

spezielle Indexform namens indizierte Ansichten. Kapitel 27 ist „Columnstore-Indizes“. Dem Thema Säulenlager wurde wegen seiner Bedeutung ein ganzes Kapitel gewidmet. Zunächst werden die Vorteile dieser Technik aufgezeigt. Danach werden die technischen Details besprochen. Im letzten Teil des Kapitels werden zwei Formen dieser Technik erläutert: geclusterte und nicht geclusterte Columnstore-Indizes. Teil V, „Beyond Relational Data“, widmet sich den folgenden nichtrelationalen Themen: JSON, XML, räumliche und zeitliche Daten sowie Volltextsuche. Die folgenden Kapitel sind in diesem Teil enthalten: Kapitel 28, „XML- und JSON-Integration in die Datenbank-Engine“, behandelt die erste XML-Integration in die Datenbank-Engine und die Datentypen und Funktionen von Microsoft, die XML in der Datenbank-Engine unterstützen, um die Lücke zu schließen zwischen XML und relationalen Daten. Am Anfang des Kapitels wird der standardisierte Datentyp XML vorgestellt und erklärt, wie gespeicherte XML-Dokumente abgerufen werden können. Anschließend wird die Darstellung relationaler Daten als XML-Dokumente ausführlich besprochen. Im zweiten Teil des Kapitels wird die Unterstützung eines anderen Datenformats namens JSON erläutert. Der Aufbau dieses Teils ist identisch mit dem, der die XML-Integration beschreibt. Kapitel 29, „Räumliche und zeitliche Daten“, behandelt zwei spezielle Datenformen: räumliche Daten und zeitliche Daten. Zunächst werden die räumlichen Datentypen GEOMETRY und GEOGRAPHY beschrieben. Mehrere verschiedene standardisierte Funktionen in Bezug auf Geodaten werden gezeigt. Der zweite Teil des Kapitels erklärt zeitliche Daten. Es stellt temporale Tabellen vor, die zum Speichern von temporalen Daten verwendet werden, und erklärt einige spezielle Eigenschaften von temporalen Daten. Kapitel 30, „SQL Server-Volltextsuche“, behandelt zunächst allgemeine Konzepte der Volltextsuche. Im zweiten Teil werden die allgemeinen Schritte beschrieben, die zum Erstellen eines Volltextindex erforderlich sind, und anschließend veranschaulicht, wie diese Schritte zuerst mit Transact-SQL und dann mit SQL Server Management Studio angewendet werden. Der Rest des Kapitels ist Volltextabfragen gewidmet. Es beschreibt zwei Prädikate und zwei Zeilenfunktionen, die für die Volltextsuche verwendet werden können. Für diese Prädikate und Funktionen werden mehrere Beispiele bereitgestellt, um zu zeigen, wie Sie spezifische Probleme in Bezug auf erweiterte Operationen an Dokumenten lösen können. Fast alle Kapitel enthalten am Ende zahlreiche Übungen, mit denen Sie Ihr Wissen über den Inhalt des Kapitels verbessern können. Alle Lösungen zu den gegebenen Aufgaben finden Sie auf meiner eigenen Homepage (www.fh-rosenheim.de/

Änderungen gegenüber der vorherigen Ausgabe Wenn Sie mit der vorherigen Ausgabe dieses Buchs, Microsoft SQL Server 2012: A Beginner’s Guide, vertraut sind, sollten Sie wissen, dass ich in dieser Ausgabe erhebliche Änderungen vorgenommen habe. Um die Bedienung des Buches zu erleichtern, habe ich einige Themen getrennt und in ganz neuen Kapiteln beschrieben. (Zum Beispiel sind indizierte Ansichten, die in Kapitel 11 der vorherigen Ausgabe beschrieben wurden, jetzt Teil von Kapitel 26.) Die folgende Tabelle gibt Ihnen einen Überblick über die wesentlichen strukturellen Änderungen im Buch (geringfügige Änderungen sind nicht aufgeführt).

Unterschiede zwischen SQL- und Transact-SQL-Syntax Transact-SQL, die relationale Datenbanksprache von SQL Server, weist mehrere nicht standardisierte Eigenschaften auf, die Personen, die nur mit SQL vertraut sind, im Allgemeinen nicht bekannt sind: Während das Semikolon () in SQL verwendet wird, um zwei SQL-Anweisungen zu trennen in einer Anweisungsgruppe (und Sie erhalten in der Regel eine Fehlermeldung, wenn Sie das Semikolon nicht angeben), in Transact-SQL wird die Verwendung von Semikolons dringend empfohlen, kann aber auch weggelassen werden. Transact-SQL verwendet die GO-Anweisung. Diese nicht standardisierte Anweisung wird im Allgemeinen verwendet, um Anweisungsgruppen voneinander zu trennen, während einige Transact-SQL-Anweisungen (wie CREATE TABLE, CREATE INDEX usw.) die einzige Anweisung in der Gruppe sein müssen.

Die in diesem Buch sehr häufig verwendete USE-Anweisung ändert den Datenbankkontext auf die angegebene Datenbank. Die Anweisung USE Beispiel bedeutet beispielsweise, dass die folgenden Anweisungen im Kontext der Beispieldatenbank ausgeführt werden.

Arbeiten mit den Beispieldatenbanken Ein einführendes Buch wie dieses erfordert eine Beispieldatenbank, die für jeden Leser leicht verständlich ist. Aus diesem Grund habe ich für meine eigene Beispieldatenbank ein ganz einfaches Konzept verwendet: Sie hat nur vier Tabellen mit jeweils mehreren Zeilen. Andererseits ist seine Logik komplex genug, um die Hunderte von Beispielen zu demonstrieren, die im Text des Buches enthalten sind. Die Beispieldatenbank, die Sie in diesem Buch verwenden, repräsentiert ein Unternehmen mit Abteilungen und Mitarbeitern. Jeder Mitarbeiter gehört genau einer Abteilung an, die selbst einen oder mehrere Mitarbeiter hat. Im Mittelpunkt der Tätigkeiten der Mitarbeiter stehen Projekte: Jeder Mitarbeiter arbeitet gleichzeitig für ein oder mehrere Projekte, und jedes Projekt beschäftigt einen oder mehrere Mitarbeiter. Als nächstes werden die Tabellen der Beispieldatenbank angezeigt. Die Abteilungstabelle:

Die Beispieldatenbank können Sie von meiner eigenen Homepage herunterladen (www.fhrosenheim.de/

petkovic). Außerdem können Sie alle Beispiele im Buch sowie Lösungen für Übungen von meiner Homepage herunterladen. Obwohl die Beispieldatenbank für viele Beispiele in diesem Buch verwendet werden kann, sind für einige Beispiele Tabellen mit vielen Zeilen erforderlich (z. B. um Optimierungsfunktionen zu zeigen). Aus diesem Grund werden auch zwei Microsoft-Beispieldatenbanken – AdventureWorks und AdventureWorksDW – verwendet. Beide können von der Microsoft CodePlex-Website heruntergeladen werden.

Ich möchte die wichtigen Beiträge meiner Lektorin Hilary Flood, meines technischen Redakteurs Todd Meister und meines Lektors Bill McManus anerkennen.

Grundkonzepte und Installation

Relationale Datenbanksysteme: Eine Einführung in dieses Kapitel Datenbanksysteme: Ein Überblick Relationale Datenbanksysteme Syntaxkonventionen für den Datenbankentwurf

Dieses Kapitel beschreibt Datenbanksysteme im Allgemeinen. Zunächst wird erläutert, was ein Datenbanksystem ist und welche Komponenten es enthält. Jede Komponente wird kurz beschrieben, mit Verweis auf das Kapitel, in dem sie ausführlich beschrieben wird. Der zweite große Abschnitt von

das kapitel ist relationalen datenbanksystemen gewidmet. Es diskutiert die Eigenschaften relationaler Datenbanksysteme und die entsprechende Sprache, die in solchen Systemen verwendet wird – Structured Query Language (SQL). Im Allgemeinen müssen Sie eine Datenbank mit all ihren Objekten entwerfen, bevor Sie sie implementieren. Der dritte Hauptabschnitt des Kapitels erklärt, wie Sie normale Formulare verwenden können, um das Design Ihrer Datenbank zu verbessern, und stellt auch das Entity-Relationship-Modell vor, mit dem Sie alle Entitäten und ihre Beziehungen konzeptualisieren können. Der letzte Abschnitt stellt die Syntaxkonventionen vor, die im gesamten Buch verwendet werden.

Datenbanksysteme: Ein Überblick Ein Datenbanksystem ist eine Gesamtsammlung verschiedener Datenbanksoftwarekomponenten und Datenbanken, die die folgenden Teile enthält: Datenbankanwendungsprogramme Clientkomponenten Datenbankserver(n) Datenbanken Ein Datenbankanwendungsprogramm ist eine Spezialsoftware, die entworfen und implementiert wird von Benutzer oder von Software-Drittanbietern. Im Gegensatz dazu sind Clientkomponenten universelle Datenbanksoftware, die von einem Datenbankunternehmen entwickelt und implementiert wird. Durch die Verwendung von Clientkomponenten können Benutzer auf Daten zugreifen, die auf demselben Computer oder einem Remotecomputer gespeichert sind. Die Aufgabe eines Datenbankservers besteht darin, in einer Datenbank gespeicherte Daten zu verwalten. Jeder Client kommuniziert mit einem Datenbankserver, indem er Benutzeranfragen an diesen sendet. Der Server verarbeitet jede Anfrage und sendet das Ergebnis an den Client zurück. Im Allgemeinen kann eine Datenbank aus zwei Perspektiven betrachtet werden, der des Benutzers und des Datenbanksystems. Benutzer sehen eine Datenbank als eine Sammlung von Daten, die logisch zusammengehören. Für ein Datenbanksystem ist eine Datenbank einfach eine Reihe von Bytes, die normalerweise auf einer Festplatte gespeichert werden. Obwohl diese beiden Sichten einer Datenbank völlig unterschiedlich sind, haben sie eines gemeinsam: Das Datenbanksystem muss nicht nur Schnittstellen bereitstellen, die es Benutzern ermöglichen, Datenbanken zu erstellen und Daten abzurufen oder zu ändern, sondern auch Systemkomponenten, um die gespeicherten Daten zu verwalten. Daher muss ein Datenbanksystem folgende Eigenschaften bieten: Vielfältige Benutzeroberflächen Physikalische Datenunabhängigkeit Technet24

Logische Datenunabhängigkeit Abfrageoptimierung Datenintegrität Gleichzeitigkeitskontrolle Sicherung und Wiederherstellung Datenbanksicherheit In den folgenden Abschnitten werden diese Funktionen kurz beschrieben.

Vielfältige Benutzeroberflächen Die meisten Datenbanken sind für die Verwendung durch viele verschiedene Benutzertypen mit unterschiedlichem Kenntnisstand konzipiert und implementiert. Aus diesem Grund sollte ein Datenbanksystem viele unterschiedliche Benutzeroberflächen bieten. Eine Benutzeroberfläche kann entweder grafisch oder textuell sein. Grafische Benutzeroberflächen (GUIs) akzeptieren Benutzereingaben über Tastatur oder Maus und erstellen eine grafische Ausgabe auf dem Monitor. Eine Form der Textschnittstelle, die häufig von Datenbanksystemen verwendet wird, ist die Befehlszeilenschnittstelle (CLI), bei der der Benutzer die Eingabe durch Eingabe eines Befehls mit der Tastatur und das System die Ausgabe durch Drucken von Text auf dem Computermonitor bereitstellt.

Physische Datenunabhängigkeit Physische Datenunabhängigkeit bedeutet, dass die Datenbankanwendungsprogramme nicht von der physischen Struktur der gespeicherten Daten in einer Datenbank abhängig sind. Diese wichtige Funktion ermöglicht es Ihnen, Änderungen an den gespeicherten Daten vorzunehmen, ohne Änderungen an den Datenbankanwendungsprogrammen vornehmen zu müssen. Wenn beispielsweise die gespeicherten Daten zuvor nach einem Kriterium geordnet wurden und diese Reihenfolge nach einem anderen Kriterium geändert wird, sollte die Änderung der physischen Daten keine Auswirkungen auf die vorhandenen Datenbankanwendungen oder das vorhandene Datenbankschema haben (eine Beschreibung einer Datenbank, die von der Datendefinitionssprache des Datenbanksystems).

Logische Datenunabhängigkeit Bei der Dateiverarbeitung (unter Verwendung traditioneller Programmiersprachen) erfolgt die Deklaration einer Datei in Anwendungsprogrammen, sodass jede Änderung der Struktur dieser Datei normalerweise die Änderung aller Programme erfordert, die sie verwenden. Datenbanksysteme bieten logische Datenunabhängigkeit, dh es ist möglich, Änderungen an der logischen Struktur der Datenbank vorzunehmen, ohne dass Änderungen an den Datenbankanwendungsprogrammen vorgenommen werden müssen.

Wenn beispielsweise die Struktur eines Objekts namens PERSON im Datenbanksystem vorhanden ist und Sie PERSON ein Attribut hinzufügen möchten (z. B. die Adresse), müssen Sie nur die logische Struktur der Datenbank und nicht die vorhandenen Anwendungsprogramme ändern. (Die Anwendung müsste geändert werden, um die neu hinzugefügte Spalte zu verwenden.)

Abfrageoptimierung Die meisten Datenbanksysteme enthalten eine Unterkomponente namens Optimierer, die eine Vielzahl möglicher Ausführungsstrategien zum Abfragen der Daten berücksichtigt und dann die effizienteste auswählt. Die ausgewählte Strategie wird als Ausführungsplan der Abfrage bezeichnet. Der Optimierer trifft seine Entscheidungen unter Verwendung von Überlegungen wie der Größe der Tabellen, die an der Abfrage beteiligt sind, welche Indizes vorhanden sind und welcher Boolesche Operator (AND, OR oder NOT) in der WHERE-Klausel verwendet wird. (Dieses Thema wird ausführlich in Kapitel 19 behandelt.)

Datenintegrität Eine der Aufgaben eines Datenbanksystems besteht darin, logisch inkonsistente Daten zu erkennen und deren Speicherung in einer Datenbank abzulehnen. (Das Datum 30. Februar und die Uhrzeit 17:77:00 Uhr sind zwei Beispiele für solche Daten.) Darüber hinaus unterliegen die meisten realen Probleme, die unter Verwendung von Datenbanksystemen implementiert werden, Integritätsbeschränkungen, die für die Daten gelten müssen. (Ein Beispiel für eine Integritätsbeschränkung könnte die Mitarbeiternummer des Unternehmens sein, die eine fünfstellige ganze Zahl sein muss.) Die Aufgabe der Integritätswahrung kann vom Benutzer in Anwendungsprogrammen oder vom DBMS übernommen werden. Diese Aufgabe sollte möglichst vom DBMS übernommen werden. (Die Datenintegrität wird in zwei Kapiteln dieses Buches behandelt: deklarative Integrität in Kapitel 5 und prozedurale Integrität in Kapitel 14.)

Concurrency Control Ein Datenbanksystem ist ein Mehrbenutzer-Softwaresystem, dh viele Benutzeranwendungen greifen gleichzeitig auf eine Datenbank zu. Daher muss jedes Datenbanksystem über einen Kontrollmechanismus verfügen, um sicherzustellen, dass mehrere Anwendungen, die versuchen, dieselben Daten zu aktualisieren, dies auf kontrollierte Weise tun. Ein Beispiel für ein Problem, das auftreten kann, wenn ein Datenbanksystem solche Kontrollmechanismen nicht enthält: 1. Die Inhaber des Bankkontos 4711 bei Bank X haben einen Kontostand von 2000. 2. Die beiden Mitinhaber dieses Bankkontos , Frau A und Herr B, gehen zu zwei verschiedenen Bankschaltern, und jeder hebt gleichzeitig 1000 ab. 3. Nach diesen Transaktionen sollte der Geldbetrag auf dem Bankkonto 4711 0 und nicht 1000 betragen.

Alle Datenbanksysteme verfügen über die notwendigen Mechanismen, um Fälle wie dieses Beispiel zu behandeln. Die Parallelitätssteuerung wird ausführlich in Kapitel 13 besprochen.

Sicherung und Wiederherstellung Ein Datenbanksystem muss über ein Subsystem verfügen, das für die Wiederherstellung nach Hardware- oder Softwarefehlern verantwortlich ist. Wenn beispielsweise ein Fehler auftritt, während eine Datenbankanwendung 100 Zeilen einer Tabelle aktualisiert, muss das Wiederherstellungssubsystem alle zuvor ausgeführten Aktualisierungen rückgängig machen, um sicherzustellen, dass die entsprechenden Daten nach Auftreten des Fehlers konsistent sind. (Weitere Informationen zu Backup und Recovery finden Sie in Kapitel 16.)

Datenbanksicherheit Die wichtigsten Datenbanksicherheitskonzepte sind Authentifizierung und Autorisierung. Authentifizierung ist der Prozess der Überprüfung von Benutzeranmeldeinformationen, um zu verhindern, dass nicht autorisierte Benutzer ein System verwenden. Die Authentifizierung wird am häufigsten erzwungen, indem der Benutzer aufgefordert wird, einen (Benutzer-)Namen und ein Kennwort einzugeben. Diese Informationen werden vom System ausgewertet, um festzustellen, ob der Benutzer auf das System zugreifen darf. Dieser Prozess kann durch die Verwendung von Verschlüsselung verstärkt werden. Autorisierung ist der Prozess, der angewendet wird, nachdem die Identität eines Benutzers authentifiziert wurde. Dabei ermittelt das System, welche Ressourcen der jeweilige Benutzer nutzen kann. Mit anderen Worten, Informationen zu einer bestimmten Entität sind nur für Prinzipale verfügbar, die über die Berechtigung zum Zugriff auf diese Entität verfügen. (Kapitel 12 behandelt diese Konzepte im Detail.)

Relationale Datenbanksysteme Die als Database Engine bezeichnete Komponente von Microsoft SQL Server ist ein relationales Datenbanksystem. Im Gegensatz zu früheren Datenbanksystemen (Netzwerk und hierarchisch) basieren relationale Datenbanksysteme auf dem relationalen Datenmodell, das einen starken mathematischen Hintergrund hat.

ANMERKUNG Ein Datenmodell ist eine Sammlung von Konzepten, ihren Beziehungen und ihren Beschränkungen, die verwendet werden, um Daten eines realen Problems darzustellen. Das zentrale Konzept des relationalen Datenmodells ist eine Relation, also eine Tabelle.

Aus Benutzersicht enthält eine relationale Datenbank daher Tabellen und nichts als Tabellen. In einer Tabelle gibt es eine oder mehrere Spalten und null oder mehr Zeilen. An jeder Zeilen- und Spaltenposition einer Tabelle steht immer genau ein Datenwert.

Arbeiten mit der Beispieldatenbank des Buches Die in diesem Buch verwendete Beispieldatenbank repräsentiert ein Unternehmen mit Abteilungen und Mitarbeitern. Jeder Mitarbeiter im Beispiel gehört genau einer Abteilung an, die selbst einen oder mehrere Mitarbeiter hat. Im Mittelpunkt der Tätigkeiten der Mitarbeiter stehen Projekte: Jeder Mitarbeiter arbeitet gleichzeitig an einem oder mehreren Projekten, und jedes Projekt beschäftigt einen oder mehrere Mitarbeiter. Die Daten der Beispieldatenbank lassen sich über vier Tabellen darstellen: Abteilung Mitarbeiter Projekt works_on Die Tabellen 1-1 bis 1-4 zeigen alle Tabellen der Beispieldatenbank.

Die Abteilungstabelle repräsentiert alle Abteilungen des Unternehmens. Jede Abteilung hat die folgenden Attribute: Abteilung (Abteilungsnummer, Abteilungsname, Standort) Abteilungsnummer repräsentiert die eindeutige Nummer jeder Abteilung. dept_name ist sein Name und location ist der Standort der entsprechenden Abteilung. Die Mitarbeitertabelle repräsentiert alle Mitarbeiter eines Unternehmens. Jeder Mitarbeiter hat folgende Attribute: Mitarbeiter (emp_no, emp_fname, emp_lname, dept_no) emp_no steht für die eindeutige Nummer jedes Mitarbeiters. emp_fname und emp_lname sind der Vor- bzw. Nachname jedes Mitarbeiters. Abt_Nr schließlich ist die Nummer der Abteilung, zu der der Mitarbeiter gehört. Jedes Projekt eines Unternehmens wird in der Projekttabelle dargestellt. Diese Tabelle hat die folgenden Spalten: project (project_no, project_name, budget) project_no steht für die eindeutige Nummer jedes Projekts. Projektname und Budget Technet24

Geben Sie den Namen und das Budget jedes Projekts an. Die Tabelle works_on gibt die Beziehung zwischen Mitarbeitern und Projekten an. Sie hat folgende Spalten: works_on (emp_no, project_no, job, enter_date) emp_no gibt die Mitarbeiternummer an und project_no gibt die Nummer des Projekts an, an dem der Mitarbeiter arbeitet. Die Kombination der zu diesen beiden Spalten gehörenden Datenwerte ist immer eindeutig. job und enter_date geben die Aufgabe bzw. das Startdatum eines Mitarbeiters im entsprechenden Projekt an. Anhand der Beispieldatenbank können einige allgemeine Eigenschaften relationaler Datenbanksysteme beschrieben werden: Zeilen in einer Tabelle haben keine bestimmte Reihenfolge. Spalten in einer Tabelle haben keine bestimmte Reihenfolge. Jede Spalte muss innerhalb einer Tabelle einen eindeutigen Namen haben. Andererseits können Spalten aus verschiedenen Tabellen den gleichen Namen haben. (Die Beispieldatenbank hat beispielsweise eine Spalte dept_no in der Abteilungstabelle und eine Spalte mit demselben Namen in der Employee-Tabelle.) Jedes einzelne Datenelement in der Tabelle muss einen Einzelwert haben. Das bedeutet, dass es in jeder Zeilen- und Spaltenposition einer Tabelle niemals mehrere Datenwerte gibt. Für jede Tabelle gibt es normalerweise eine Spalte mit der Eigenschaft, dass keine zwei Zeilen die gleiche Kombination von Datenwerten für alle Tabellenspalten aufweisen. Im relationalen Datenmodell wird ein solcher Bezeichner als Kandidatenschlüssel bezeichnet. Wenn eine Tabelle mehr als einen Kandidatenschlüssel enthält, legt der Datenbankdesigner einen davon als Primärschlüssel der Tabelle fest. Die Spalte dept_no ist beispielsweise der Primärschlüssel der Abteilungstabelle, die Spalten emp_no und project_no sind die Primärschlüssel der Tabellen Employee bzw. Projekt. Der Primärschlüssel für die Tabelle works_on schließlich ist die Kombination der Spalten emp_no, project_no. In einer Tabelle gibt es nie zwei identische Zeilen. (Diese Eigenschaft ist nur theoretisch. Die Database Engine und alle anderen relationalen Datenbanksysteme erlauben im Allgemeinen das Vorhandensein identischer Zeilen innerhalb einer Tabelle.)

SQL: Eine relationale Datenbanksprache Die relationale Datenbanksprache von SQL Server heißt Transact-SQL (T-SQL). Es ist ein Dialekt der heute wichtigsten Datenbanksprache: Structured Query Language (SQL). Der Ursprung von SQL ist eng mit dem Projekt namens System R verbunden, das

wurde in den frühen 1980er Jahren von IBM entwickelt und implementiert. Dieses Projekt zeigte, dass es möglich ist, mit den theoretischen Grundlagen der Arbeit von E. F. Codd ein relationales Datenbanksystem aufzubauen. Im Gegensatz zu traditionellen Sprachen wie C, C++ und Java ist SQL eine mengenorientierte Sprache. (Die ersteren werden auch als satzorientierte Sprachen bezeichnet.) Dies bedeutet, dass SQL mit nur einer Anweisung viele Zeilen aus einer oder mehreren Tabellen abfragen kann. Diese Funktion ist einer der wichtigsten Vorteile von SQL und ermöglicht die Verwendung dieser Sprache auf einer logisch höheren Ebene als die Ebene, auf der herkömmliche Sprachen verwendet werden können. Eine weitere wichtige Eigenschaft von SQL ist seine Nichtprozeduralität. Jedes in einer prozeduralen Sprache (C, C++, Java) geschriebene Programm beschreibt Schritt für Schritt, wie eine Aufgabe gelöst wird. Im Gegensatz dazu beschreibt SQL wie jede andere nichtprozedurale Sprache, was der Benutzer will. Somit ist das System dafür verantwortlich, den geeigneten Weg zu finden, um die Anfragen der Benutzer zu lösen. SQL enthält zwei Untersprachen: eine Datendefinitionssprache (DDL) und eine Datenbearbeitungssprache (DML). DDL-Anweisungen werden verwendet, um das Schema von Datenbanktabellen zu beschreiben. Die DDL enthält drei generische SQL-Anweisungen: CREATE-Objekt, ALTER-Objekt und DROP-Objekt. Diese Anweisungen erstellen, ändern und entfernen Datenbankobjekte wie Datenbanken, Tabellen, Spalten und Indizes. (Diese Anweisungen werden in Kapitel 5 ausführlich behandelt.) Im Gegensatz zur DDL umfasst die DML alle Operationen, die die Daten manipulieren. Es gibt immer vier generische Operationen zum Bearbeiten der Datenbank: Abrufen, Einfügen, Löschen und Ändern. Die Retrieval-Anweisung SELECT wird in Kapitel 6 beschrieben, während die INSERT-, DELETE- und UPDATE-Anweisungen in Kapitel 7 ausführlich behandelt werden.

Datenbankentwurf Das Entwerfen einer Datenbank ist eine sehr wichtige Phase im Datenbanklebenszyklus, die allen anderen Phasen mit Ausnahme der Anforderungssammlung und der Analyse vorausgeht. Wird das Datenbankdesign lediglich intuitiv und ohne Plan erstellt, wird die resultierende Datenbank höchstwahrscheinlich nicht den Anforderungen der Benutzer an die Performance gerecht. Eine weitere Folge eines schlechten Datenbankdesigns ist eine überflüssige Datenredundanz, die an sich zwei Nachteile hat: das Vorhandensein von Datenanomalien und die unnötige Nutzung von Speicherplatz. Die Normalisierung von Daten ist ein Prozess, bei dem die vorhandenen Tabellen einer Datenbank getestet werden, um bestimmte Abhängigkeiten zwischen den Spalten einer Tabelle zu finden. Wenn solche Abhängigkeiten bestehen, wird die Tabelle in mehrere (normalerweise zwei) Tabellen umstrukturiert, wodurch alle Spaltenabhängigkeiten beseitigt werden. Enthält eine dieser generierten Tabellen noch Datenabhängigkeiten, muss der Normalisierungsvorgang wiederholt werden, bis alle Abhängigkeiten aufgelöst sind.

Der Prozess der Beseitigung von Datenredundanz in einer Tabelle basiert auf der Theorie der funktionalen Abhängigkeiten. Eine funktionale Abhängigkeit bedeutet, dass unter Verwendung des bekannten Wertes einer Spalte immer der entsprechende Wert einer anderen Spalte eindeutig bestimmt werden kann. (Dasselbe gilt für Spaltengruppen.) Die funktionalen Abhängigkeiten zwischen den Spalten A und B werden mit A ⇒ B bezeichnet, was angibt, dass ein Wert von Spalte A immer verwendet werden kann, um den entsprechenden Wert von Spalte B zu bestimmen („B ist funktional abhängig von A.“) Beispiel 1.1 zeigt die funktionale Abhängigkeit zwischen zwei Attributen der Tabelle Mitarbeiter in der Beispieldatenbank.

BEISPIEL 1.1 emp_no ⇒ emp_lname Durch einen eindeutigen Wert für die Mitarbeiternummer kann der entsprechende Nachname des Mitarbeiters (und alle anderen entsprechenden Attribute) ermittelt werden. Diese Art der funktionalen Abhängigkeit, bei der eine Spalte vom Primärschlüssel einer Tabelle abhängt, wird als triviale funktionale Abhängigkeit bezeichnet.

Normalformen Normalformen werden für den Prozess der Normalisierung von Daten und damit für den Datenbankentwurf verwendet. Theoretisch gibt es mindestens fünf verschiedene Normalformen, von denen die ersten drei für die Praxis am wichtigsten sind. Die dritte Normalform einer Tabelle kann durch Testen der ersten und zweiten Normalform in den Zwischenzuständen erreicht werden, und somit kann das Ziel eines guten Datenbankdesigns in der Regel erfüllt werden, wenn alle Tabellen einer Datenbank in der dritten Normalform vorliegen.

Erste Normalform Erste Normalform (1NF) bedeutet, dass eine Tabelle keine mehrwertigen oder zusammengesetzten Attribute besitzt. (Ein zusammengesetztes Attribut enthält andere Attribute und kann daher in kleinere Teile unterteilt werden.) Alle relationalen Tabellen sind per Definition in 1NF, da der Wert jeder Spalte in einer Zeile atomar, dh einwertig, sein muss. Tabelle 1-5 zeigt, dass 1NF einen Teil der Tabelle works_on aus der Beispieldatenbank verwendet. Die Zeilen der Tabelle works_on könnten anhand der Mitarbeiternummer gruppiert werden. Die resultierende Tabelle 1-6 befindet sich nicht in 1NF, da die Spalte project_no einen Satz von Werten (p1, p3) enthält.

Teil der works_on Tabelle

Zweite Normalform Eine Tabelle befindet sich in der zweiten Normalform (2NF), wenn sie sich in 1NF befindet und es keine Nichtschlüsselspalte gibt, die von einem partiellen Primärschlüssel dieser Tabelle abhängt. Das heißt, wenn (A,B) eine Kombination aus zwei Tabellenspalten ist, die den Schlüssel bilden, dann gibt es keine Spalte der Tabelle, die entweder nur von A oder nur B abhängt. Zum Beispiel zeigt Tabelle 1-7 die Tabelle works_on1, die identisch mit der Tabelle works_on mit Ausnahme der zusätzlichen Spalte dept_no. Der Primärschlüssel dieser Tabelle ist die Kombination der Spalten emp_no und project_no. Die Spalte dept_no ist abhängig vom Teilschlüssel emp_no (und unabhängig von project_no), daher ist diese Tabelle nicht in 2NF. (Die ursprüngliche Tabelle works_on befindet sich in 2NF.)

HINWEIS Jede Tabelle mit einem einspaltigen Primärschlüssel befindet sich immer in 2NF.

Dritte Normalform Eine Tabelle befindet sich in der dritten Normalform (3NF), wenn sie in 2NF vorliegt und keine funktionalen Abhängigkeiten zwischen Nichtschlüsselspalten bestehen. Zum Beispiel ist die Tabelle employee1 (siehe Tabelle 1-8), die bis auf die zusätzliche Spalte abt_name identisch mit der Tabelle Employee ist, nicht in 3NF, da für jeden bekannten Wert der Spalte abt_no der entsprechende Wert der Spalte abt_name kann eindeutig bestimmt werden. (Die Originaltabelle, Mitarbeiter sowie alle anderen Tabellen der Beispieldatenbank befinden sich in 3NF.)

Entity-Relationship-Modell Die Daten in einer Datenbank könnten leicht mit nur einer Tabelle entworfen werden, die alle Daten enthält. Der Hauptnachteil eines solchen Datenbankdesigns ist die hohe Datenredundanz. Wenn Ihre Datenbank beispielsweise Daten zu Mitarbeitern und ihren Projekten enthält (vorausgesetzt, jeder Mitarbeiter arbeitet gleichzeitig an einem oder mehreren Projekten und jedes Projekt beschäftigt einen oder mehrere Mitarbeiter), enthalten die in einer einzigen Tabelle gespeicherten Daten viele Spalten und Zeilen . Der Hauptnachteil einer solchen Tabelle besteht darin, dass Daten aufgrund ihrer Redundanz schwer konsistent zu halten sind. Das Entity-Relationship (ER)-Modell wird verwendet, um relationale Datenbanken zu entwerfen, indem alle vorhandene Redundanz in den Daten entfernt wird. Das grundlegende Objekt des ER-Modells ist eine Entität, d. h. ein Objekt der realen Welt. Jede Entität hat mehrere Attribute, die Eigenschaften der Entität sind und diese daher beschreiben. Basierend auf seinem Typ kann ein Attribut sein:

Atomar (oder einwertig) Ein atomares Attribut wird immer durch einen einzelnen Wert für eine bestimmte Entität dargestellt. Zum Beispiel ist der Familienstand einer Person immer ein atomares Attribut. Die meisten Attribute sind atomare Attribute. Mehrwertig Ein mehrwertiges Attribut kann einen oder mehrere Werte für eine bestimmte Entität haben. Beispielsweise ist Standort als Attribut einer Entität namens ENTERPRISE mehrwertig, da jedes Unternehmen einen oder mehrere Standorte haben kann. Zusammengesetzte zusammengesetzte Attribute sind nicht atomar, da sie mit einigen anderen atomaren Attributen zusammengesetzt werden. Ein typisches Beispiel für ein zusammengesetztes Attribut ist die Adresse einer Person, die aus atomaren Attributen wie Bundesland, Stadt, PLZ und Straße besteht. Die Entität PERSON in Beispiel 1.2 hat mehrere atomare Attribute, ein zusammengesetztes Attribut, Address, und ein mehrwertiges Attribut, College_degree.

BEISPIEL 1.2 PERSON (Persönliche_Nr, F_name, L_name, Adresse(Ort,PLZ,Straße), ) Jede Entität hat ein oder mehrere Schlüsselattribute, die Attribute (oder eine Kombination von zwei oder mehr Attributen) sind, deren Werte für jede bestimmte Entität eindeutig sind. In Beispiel 1.2 ist das Attribut Personal_no das Schlüsselattribut der Entität PERSON. Neben Entität und Attribut ist die Beziehung ein weiteres Grundkonzept des ER-Modells. Eine Beziehung besteht, wenn eine Entität auf eine (oder mehrere) andere Entitäten verweist. Die Anzahl der beteiligten Entitäten definiert den Grad einer Verwandtschaft. Zum Beispiel hat die Beziehung works_on zwischen den Entitäten EMPLOYEE und PROJECT den Grad zwei. Jede bestehende Beziehung zwischen zwei Entitäten muss einer der folgenden drei Typen sein: 1:1, 1:N oder M:N. (Diese Eigenschaft einer Beziehung wird auch Kardinalitätsverhältnis genannt.) Beispielsweise ist die Beziehung zwischen den Entitäten ABTEILUNG und MITARBEITER 1:N, da jeder Mitarbeiter genau einer Abteilung angehört, die wiederum einen oder mehrere Mitarbeiter hat. Auch die Beziehung zwischen den Entitäten PROJEKT und MITARBEITER ist M:N, da jedes Projekt einen oder mehrere Mitarbeiter beschäftigt und jeder Mitarbeiter gleichzeitig an einem oder mehreren Projekten arbeitet.Eine Beziehung kann auch eigene Attribute haben. Abbildung 1-1 zeigt ein Beispiel für ein ER-Diagramm. (Das ER-Diagramm ist die grafische Notation, die verwendet wird, um das ER-Modell zu beschreiben.) Mit dieser Notation werden Entitäten mit rechteckigen Kästchen modelliert, wobei der Entitätsname in das Kästchen geschrieben wird. Attribute werden in Ovalen angezeigt, und jedes Attribut wird mit einer geraden Linie an eine bestimmte Entität (oder Beziehung) angehängt. Schließlich sind Beziehungen

mit Rauten modelliert, und an der Beziehung beteiligte Entitäten werden mit geraden Linien daran befestigt. Das Kardinalitätsverhältnis jeder Entität wird in die entsprechende Zeile geschrieben.

Syntaxkonventionen Dieses Buch verwendet die in Tabelle 1-9 aufgeführten Konventionen für die Syntax der Transact-SQL-Anweisungen und für die Textangabe.

HINWEIS Im Gegensatz zu Klammern und geschweiften Klammern, die zu Syntaxkonventionen gehören, gehören Klammern, ( ) zur Syntax einer Anweisung und müssen immer eingegeben werden!

Zusammenfassung Alle Datenbanksysteme bieten folgende Features: Unterschiedliche Benutzeroberflächen Physikalische Datenunabhängigkeit Logische Datenunabhängigkeit Abfrageoptimierung Technet24

Datenintegrität Parallelitätskontrolle Sicherung und Wiederherstellung Datenbanksicherheit Das nächste Kapitel zeigt Ihnen, wie Sie SQL Server 2016 installieren.

Übungen E.1.1 Was bedeutet „Datenunabhängigkeit“ und welche zwei Formen der Datenunabhängigkeit gibt es? E.1.2 Welches ist das Hauptkonzept des relationalen Modells? E.1.3 Was stellt die Mitarbeitertabelle in der realen Welt dar? Und was stellt die Zeile in dieser Tabelle mit den Daten für Ann Jones dar? E.1.4 Was repräsentiert die Tabelle works_on in der realen Welt (und im Verhältnis zu den anderen Tabellen der Beispieldatenbank)? E.1.5 Buch sei eine Tabelle mit zwei Spalten: isbn und title. Unter der Annahme, dass isbn einzigartig ist und es keine identischen Titel gibt, beantworten Sie die folgenden Fragen: a. Ist der Titel ein Schlüssel der Tabelle? B. Hängt isbn funktional vom Titel ab? C. Ist der Büchertisch in 3NF? E.1.6 Sei order eine Tabelle mit den folgenden Spalten: order_no, customer_no, discount. Wenn die Spalte kunden_nr funktional von bestell_nr und die Spalte rabatt funktional von kunden_nr abhängig ist, beantworten Sie die folgenden Fragen und erläutern Sie Ihre Antworten ausführlich:

Ist order_no ein Schlüssel der Tabelle? Ist customer_no ein Schlüssel der Tabelle?

E.1.7 Firma sei eine Tabelle mit den folgenden Spalten: Firma_Nr, Standort. Jedes Unternehmen hat einen oder mehrere Standorte. In welcher Normalform ist der Firmentisch? E.1.8 Der Lieferant sei eine Tabelle mit den folgenden Spalten: Lieferant_Nr, Artikel, Ort. Der Schlüssel der Tabelle ist die Kombination der ersten beiden Spalten. Jeder Lieferant liefert mehrere Artikel und jeder Artikel wird von mehreren Lieferanten geliefert. In jeder Stadt gibt es nur einen Anbieter. Beantworten Sie die folgenden Fragen: a. B.

In welcher Normalform liegt die Lieferantentabelle vor? Wie können Sie die bestehenden funktionalen Abhängigkeiten auflösen?

E.1.9 Sei R(A, B, C) eine Relation mit der funktionalen Abhängigkeit B ⇒ C. (Die unterstrichenen Attribute A und B bilden den zusammengesetzten Schlüssel, und das Attribut C ist funktional abhängig von B.) In welcher Normalform ist die Beziehung R? E.1.10 Sei R(A, B, C) eine Relation mit der funktionalen Abhängigkeit C ⇒ B. (Die unterstrichenen Attribute A und B bilden den zusammengesetzten Schlüssel, und das Attribut B ist funktional von C abhängig.) In welcher Normalform ist die Beziehung R?

Planung der Installation und Installation von SQL Server In diesem Kapitel SQL Server-Editionen und -Verwaltungskomponenten Planungsphase Installieren von SQL Server

Dieses Kapitel beginnt mit einer Einführung in die verschiedenen SQL Server-Editionen und Verwaltungskomponenten, damit Sie feststellen können, welche Edition für Ihre Umgebung geeignet ist und welche Hauptverwaltungskomponenten für SQL Server 2016 vorhanden sind. Bevor Sie mit der Installation des Systems fortfahren, müssen Sie einen Installationsplan erstellen. Daher widmet sich der zweite Teil dieses Kapitels

die Planungsphase. Es enthält zunächst einige allgemeine Empfehlungen und führt Sie dann durch die Planungsschritte des SQL Server Installation Center, einer Komponente der SQL Server-Software. Der letzte Teil des Kapitels beschreibt die eigentliche Installation von SQL Server 2016. Der SQL Server Installationsassistent wird verwendet, um das System auf Ihrem Computer zu installieren.

HINWEIS Dieses Kapitel beschreibt die grundlegende Installation von SQL Server.

SQL Server-Editionen und -Verwaltungskomponenten Bei der Planung Ihrer Installation müssen Sie wissen, welche Editionen vorhanden sind, damit Sie die am besten geeignete auswählen können. Aus diesem Grund werden in diesem Abschnitt zunächst die wichtigsten verfügbaren Editionen von SQL Server 2016 beschrieben. Nachdem Sie Ihre Optionen evaluiert haben, werden in diesem Abschnitt mehrere Verwaltungskomponenten vorgestellt, z. B. SQL Server Management Studio und SQL Server Configuration Manager.

SQL Server-Editionen Microsoft unterstützt mehrere Editionen in SQL Server 2016, aber ich werde nur die wichtigsten erklären: Express Edition Die schlanke Version von SQL Server, die für die Verwendung durch Anwendungsentwickler entwickelt wurde. Aus diesem Grund unterstützt das Produkt die Integration von Common Language Runtime (CLR) und natives XML. Außerdem können Sie SQL Server Management Studio Express (SSMSE) herunterladen, um eine Datenbank einfach zu verwalten. SQL Server Express steht als kostenloser Download zur Verfügung. Standard Edition Entwickelt für kleine und mittlere Unternehmen. Es unterstützt bis zu vier Prozessoren sowie 2 TB RAM und umfasst die gesamte Bandbreite der BI-Funktionalität, einschließlich Analysis Services, Reporting Services und Integration Services. Diese Edition enthält nicht viele unternehmensbasierte Funktionen der Enterprise Edition. Enterprise Edition Die Sonderform des SQL-Server-Systems, die für zeitkritische Anwendungen mit einer großen Anzahl von Benutzern gedacht ist. Im Gegensatz zur Standard Edition enthält diese Edition zusätzliche Funktionen, die für High-End-Installationen mit symmetrischen Multiprozessoren oder Clustern nützlich sein können. Das wichtigste

Zusätzliche Funktionen der Enterprise Edition sind Datenpartitionierung, Datenbank-Snapshots und Online-Datenbankwartung. Developer Edition Ermöglicht Entwicklern, jede Art von Anwendung mit SQL Server zu erstellen und zu testen. Sie enthält alle Funktionen der Enterprise Edition, ist jedoch nur für die Entwicklung, das Testen und die Demonstration lizenziert. Jede Lizenz der Developer Edition berechtigt einen Entwickler zur Nutzung der Software auf so vielen Systemen wie nötig. Weitere Entwickler können die Software durch den Erwerb zusätzlicher Lizenzen nutzen. Für eine schnelle Bereitstellung in der Produktion kann das Datenbanksystem der Developer Edition problemlos auf die Enterprise Edition aktualisiert werden. Web Edition Eine kostengünstige Option für das Web, die Skalierbarkeits- und Verwaltungsfunktionen für kleine bis große Webanwendungen bietet.

Verwaltungskomponenten Zu SQL Server 2016 gehören unter anderem die folgenden Verwaltungskomponenten: SQL Server Management Studio (SSMS) Das primäre Werkzeug für Datenbankadministratoren (DBAs), um mit dem System zu interagieren. Sowohl Administratoren als auch Endbenutzer können dieses Tool verwenden. Kapitel 3 beschreibt diese Komponente im Detail. SQL Server-Konfigurations-Manager Das primäre Tool zum Verwalten der mit SQL Server verknüpften Dienste, zum Konfigurieren der von SQL Server verwendeten Netzwerkprotokolle und zum Verwalten der Netzwerkkonnektivitätskonfiguration von SQL Server-Clientcomputern. Es ist ein Snap-In der Microsoft Management Console (MMC), das über das Startmenü verfügbar ist. Dieses Tool wird in Kapitel 5 verwendet und erläutert. SQL Server Profiler Ein grafisches Tool, mit dem Systemadministratoren Datenbank- und Serveraktivitäten überwachen und aufzeichnen können. Das Tool wird ausführlich in Kapitel 20 beschrieben. Database Engine Tuning Advisor (DTA) Ein grafisches Tool, das es DBAs ermöglicht, den physischen Entwurf ihrer Datenbanken zu automatisieren. Das Tool wird zusammen mit SQL Server Profiler in Kapitel 20 beschrieben. Data Quality Client Eine Anwendung, die es DBAs ermöglicht, Wissensdatenbanken zu erstellen, Datenqualitätsprojekte zu erstellen und auszuführen und administrative Aufgaben auszuführen. Die detaillierte Beschreibung des Tools würde den Rahmen dieses Buches sprengen. SQL Server Data Tools (SSDT) ​​Ein Verwaltungstool, das eine Entwicklungsplattform für verschiedene Business Intelligence (BI)-Anwendungen bereitstellt. SSDT baut auf Visual Studio auf und ist eine integrierte Plattform für Systementwickler im BI

Bereich. Dieses Werkzeug wird in den Kapiteln 23 und 25 erklärt.

Planungsphase Die Beschreibung der Planungsphase gliedert sich in zwei Teile. Der erste Teil enthält einige allgemeine Empfehlungen, während der zweite Teil erläutert, wie Sie das SQL Server Installation Center zum Planen der Systeminstallation verwenden.

Allgemeine Empfehlungen Während des Installationsprozesses müssen Sie viele Entscheidungen treffen. Als allgemeine Richtlinie ist es am besten, sich mit deren Auswirkungen vertraut zu machen, bevor Sie Ihr System installieren. Zu Beginn sollten Sie folgende Fragen beantworten: Welche SQL Server-Komponenten sollen installiert werden? Wo wird das Root-Verzeichnis gespeichert? Sollen mehrere Instanzen von SQL Server verwendet werden? Welcher Authentifizierungsmodus für SQL Server sollte verwendet werden? Die folgenden Unterabschnitte behandeln diese Themen.

Welche SQL Server-Komponenten sollten installiert werden? Bevor Sie mit der Installation beginnen, sollten Sie genau wissen, welche SQL Server-Komponenten Sie installieren möchten. Abbildung 2-1 zeigt eine unvollständige Liste aller Komponenten. Dies ist eine Vorschau der Seite Funktionsauswahl des Installationsassistenten, die Sie später in diesem Kapitel bei der Installation von SQL Server erneut sehen werden.

Vorschau der Seite Funktionsauswahl des Installationsassistenten

Auf der Seite Feature-Auswahl gibt es zwei Gruppen von Features: Instanz-Features und Shared Features. Instanzfunktionen sind die Komponenten, die einmal für jede Instanz installiert werden, sodass Sie mehrere Kopien davon haben (eine für jede Instanz). Gemeinsame Funktionen sind Funktionen, die allen Instanzen auf einem bestimmten Computer gemeinsam sind. Jedes dieser freigegebenen Features ist abwärtskompatibel mit unterstützten SQL Server-Versionen, die nebeneinander installiert werden können. In diesem Abschnitt werden nur die Instanzfunktionen vorgestellt. Eine Beschreibung der freigegebenen Features finden Sie in der SQL Server-Onlinedokumentation. Das erste Element in der Liste der Instanzfunktionen in Abbildung 2-1 sind Database Engine Services. Die Database Engine ist das relationale Datenbanksystem von SQL Server. Die Teile II und III dieses Buchs beschreiben verschiedene Aspekte der Database Engine (Datenbankmodul). Die Funktion der ersten Instanz unter Database Engine Services, SQL Server Replication, ermöglicht Ihnen

um Daten von einem System auf ein anderes zu replizieren. Mit anderen Worten, mit der Datenreplikation können Sie eine verteilte Datenumgebung erreichen. Ausführliche Informationen zur Datenreplikation finden Sie in Kapitel 18. Das zweite Feature unter Database Engine Services sind R Services. Dies ist ein optionales Feature von Database Engine (Datenbankmodul), mit dem Sie in der Sprache R geschriebene Skripts ausführen können. Mit dieser Funktion können Sie R-Pakete in SQL Server bereitstellen, R-Lösungen im Kontext von SQL Server ausführen und problemlos mit SQL Server-Daten in R arbeiten. (R ist ein Open-Source-Data-Mining-Tool, das in SQL Server 2016 integriert ist. Dieses Tool wird in diesem Buch wegen seiner Komplexität nicht beschrieben.) Das dritte Feature unter Database Engine Services ist die Volltext- und Semantikextraktion für die Suche (im Folgenden als Volltextsuche bezeichnet). Mit Database Engine können Sie strukturierte Daten in Spalten relationaler Tabellen speichern. Im Gegensatz dazu werden die unstrukturierten Daten hauptsächlich als Text in Dateisystemen gespeichert. Aus diesem Grund benötigen Sie verschiedene Methoden, um Informationen aus unstrukturierten Daten abzurufen. Die Volltextsuche ist eine Komponente von SQL Server, mit der Sie unstrukturierte Daten speichern und abfragen können. Kapitel 30 ist der Volltextsuche gewidmet. Die nächste Funktion sind Data Quality Services. Diese Dienste beziehen sich auf den Data Quality Client, der im vorherigen Abschnitt beschrieben wurde. Das letzte Feature unter Database Engine Services ist der PolyBase-Abfragedienst für externe Daten. PolyBase ist eine neue Komponente von SQL Server, die ein Gateway von SQL zu Hadoop erstellt. Diese Funktionalität steht seit einigen Jahren im Microsoft Analytics Platform System (APS) zur Verfügung und ist nun integrierter Bestandteil von SQL Server. (PolyBase ist eine erweiterte Funktion, die in diesem Buch nicht beschrieben wird.) Neben den Datenbankmoduldiensten umfassen die Instanzfunktionen Analysis Services, Reporting Services und Integration Services, bei denen es sich um Komponenten im Zusammenhang mit Business Intelligence (BI) handelt. Analysis Services ist eine Gruppe von Diensten, die zum Verwalten und Abfragen von Daten verwendet wird, die in einem Data Warehouse gespeichert sind. (Ein Data Warehouse ist eine Datenbank, die alle Unternehmensdaten enthält, auf die Benutzer einheitlich zugreifen können.) Teil IV dieses Buches beschreibt SQL Server und Business Intelligence im Allgemeinen, und Kapitel 23 behandelt Analysis Services im Besonderen. Reporting Services ermöglicht Ihnen das Erstellen und Verwalten von Berichten. Diese Komponente von SQL Server wird in Kapitel 25 ausführlich beschrieben. (Integration Services wird in diesem Buch nicht behandelt.)

HINWEIS Die Installation von SQL Server Analysis Services und SQL Server Reporting Services wird hier nicht behandelt. Bitte beachten Sie die entsprechenden Kapitel zur Installation

Wo wird das Stammverzeichnis gespeichert? Im Stammverzeichnis speichert das Setup-Programm alle Programmdateien und die Dateien, die sich bei der Verwendung des SQL Server-Systems nicht ändern. Standardmäßig speichert der Installationsprozess alle Programmdateien im Unterverzeichnis Microsoft SQL Server, obwohl Sie diese Einstellung während des Installationsprozesses ändern können. Es wird empfohlen, den Standardnamen zu verwenden, da dieser die Version des Systems eindeutig bestimmt.

Sollten mehrere Instanzen von SQL Server verwendet werden? Mit SQL Server können Sie mehrere verschiedene Instanzen installieren und verwenden. Eine Instanz ist ein Datenbankserver, der seine System- und Benutzerdatenbanken nicht mit anderen Instanzen (Servern) teilt, die auf demselben Computer ausgeführt werden. Es gibt zwei Instanztypen: Standardname mit Namen Die Standardinstanz funktioniert genauso wie die Datenbankserverversionen von SQL Server, bei denen nur ein Datenbankserver unterstützt wird. Der Computername, auf dem die Instanz ausgeführt wird, gibt ausschließlich den Namen der Standardinstanz an. Jede andere Instanz des Datenbankservers als die Standardinstanz wird als benannte Instanz bezeichnet. Um eine benannte Instanz zu identifizieren, müssen Sie ihren Namen sowie den Namen des Computers angeben, auf dem die Instanz ausgeführt wird. Auf einem Computer können mehrere benannte Instanzen vorhanden sein (zusätzlich zur Standardinstanz). Darüber hinaus können Sie benannte Instanzen auf einem Computer konfigurieren, der nicht über die Standardinstanz verfügt. Obwohl nicht alle auf einem Computer ausgeführten Instanzen die meisten Systemressourcen (SQL Server- und SQL Server-Agent-Dienste, System- und Benutzerdatenbanken sowie Registrierungsschlüssel) gemeinsam nutzen, gibt es einige Komponenten, die von ihnen gemeinsam genutzt werden: SQL Server-Programmgruppe Entwicklungsbibliotheken Die Existenz von nur einer SQL Server-Programmgruppe auf einem Computer bedeutet auch, dass nur eine Kopie jedes Dienstprogramms vorhanden ist, die durch ein Symbol in der Programmgruppe dargestellt wird. (Dazu gehört auch die SQL Server-Onlinedokumentation.) Daher funktioniert jedes Dienstprogramm mit allen auf einem Computer konfigurierten Instanzen. Sie sollten die Verwendung mehrerer Instanzen in Betracht ziehen, wenn beide der folgenden Bedingungen zutreffen:

Sie haben verschiedene Arten von Datenbanken auf Ihrem Computer. Ihr Computer ist leistungsstark genug, um mehrere Instanzen zu verwalten. Der Hauptzweck mehrerer Instanzen besteht darin, in Ihrer Organisation vorhandene Datenbanken in verschiedene Gruppen zu unterteilen. Wenn das System beispielsweise Datenbanken verwaltet, die von verschiedenen Benutzern verwendet werden (Produktionsdatenbanken, Testdatenbanken und Beispieldatenbanken), sollten Sie sie aufteilen, um sie unter verschiedenen Instanzen auszuführen. Auf diese Weise können Sie Ihre Produktionsdatenbanken von Datenbanken kapseln, die von gelegentlichen oder unerfahrenen Benutzern verwendet werden. Ein Einzelprozessorcomputer ist aufgrund begrenzter Ressourcen nicht die richtige Hardwareplattform, um mehrere Instanzen von Database Engine (Datenbankmodul) auszuführen. Aus diesem Grund sollten Sie die Verwendung mehrerer Instanzen nur bei Computern mit mehreren Prozessoren in Betracht ziehen.

Welcher Authentifizierungsmodus für SQL Server sollte verwendet werden? In Bezug auf Database Engine (Datenbankmodul) gibt es zwei verschiedene Authentifizierungsmodi: Windows-Modus Gibt die Sicherheit ausschließlich auf Betriebssystemebene an, dh er legt fest, wie Benutzer mit ihren Benutzerkonten und Gruppenmitgliedschaften eine Verbindung zum Windows-Betriebssystem herstellen. Gemischter Modus Ermöglicht Benutzern das Herstellen einer Verbindung mit dem Datenbankmodul mithilfe der Windows-Authentifizierung oder der SQL Server-Authentifizierung. Dies bedeutet, dass einige Benutzerkonten für die Verwendung des Windows-Sicherheitssubsystems eingerichtet werden können, während andere zusätzlich zum Windows-Sicherheitssubsystem das SQL Server-Sicherheitssubsystem verwenden können. Microsoft empfiehlt die Verwendung des Windows-Modus. (Einzelheiten siehe Kapitel 12.)

Planung der Installation

HINWEIS Dieses Kapitel enthält eine schrittweise Anleitung zum Installieren einer neuen Instanz von SQL Server 2016 mithilfe des Assistenten. Der SQL Server-Installationsassistent bietet eine einzelne Funktionsstruktur für die Installation aller SQL Server-Komponenten, sodass Sie sie nicht einzeln installieren müssen. Es gibt auch andere Möglichkeiten zum Installieren von SQL Server 2016, z. B. mithilfe einer Eingabeaufforderung oder einer Konfigurationsdatei. Sie werden in diesem Buch nicht diskutiert.

Um die SQL Server-Installation zu starten, mounten Sie das Image der SQL Server 2016-Software. Klicken Sie anschließend auf die Ausführungsdatei „Setup“, um das SQL Server Installation Center zu öffnen (siehe Abbildung 2-2). Dieses Tool unterstützt Sie in der Planungs-, Installations- und Wartungsphase Ihres Datenbanksystems.

SQL Server Installation Center: Planungsseite

Die erste Phase des Installation Centers führt Sie durch die Planung der Installation. Wie in Abbildung 2-2 gezeigt, können Sie auf der Seite Planung unter anderem die folgenden Aufgaben ausführen: Hardware- und Softwareanforderungen

Sicherheitsdokumentation Online-Versionshinweise Systemkonfigurationsprüfung Upgrade-Ratgeber herunterladen In den folgenden Unterabschnitten werden die ersten vier Aufgaben beschrieben. (Upgrade Advisor analysiert alle Komponenten früherer Versionen, die installiert sind, und identifiziert Probleme, die vor dem Upgrade auf SQL Server 2016 behoben werden müssen.)

Hardware- und Softwareanforderungen Die Tatsache, dass das SQL Server-System nur auf Microsoft-Betriebssystemen läuft, vereinfacht Entscheidungen bezüglich der Softwareanforderungen. Aus diesem Grund werde ich nur über die Hardwareanforderungen sprechen. Windows-Betriebssysteme werden auf den Intel- und AMD-Hardwareplattformen unterstützt. Die Prozessorgeschwindigkeit sollte mindestens 1,4 GHz betragen, 2 GHz oder schneller werden jedoch empfohlen. Offiziell beträgt die Mindestanforderung für den Hauptspeicher 1 MB. (Die Express Edition benötigt nur 512 KB.) Allerdings weiß fast jeder, dass eine solche Minimalkonfiguration nicht sehr gut funktioniert, und als allgemeine Richtlinie sollte der Hauptspeicher Ihres Computers mindestens 4 GB betragen. Die Anforderungen an den Festplattenspeicherplatz hängen von Ihrer Systemkonfiguration und den Anwendungen ab, die Sie installieren möchten. Je mehr SQL Server-Komponenten Sie installieren möchten, desto mehr Speicherplatz benötigen Sie. (Der Mindestspeicherplatz auf der Festplatte beträgt 6 GB. Der Speicherplatzbedarf für heruntergeladene Books-Online-Inhalte beträgt 200 MB.)

Sicherheitsdokumentation Wenn Sie auf Sicherheitsdokumentation klicken, führt Sie das System zur Microsoft-Seite, auf der allgemeine Überlegungen zur Sicherheit erläutert werden. Eine der wichtigsten Sicherheitsmaßnahmen besteht darin, Dienste voneinander zu isolieren. Um Dienste zu isolieren, führen Sie separate SQL Server-Dienste unter separaten Windows-Konten aus.(Kapitel 12 behandelt Windows-Konten und andere Sicherheitsaspekte.) Informationen zu allen anderen Sicherheitsaspekten finden Sie in der Onlinedokumentation.

Online-Versionshinweise Es gibt zwei Hauptquellen zum Abrufen von Informationen zu allen Features des SQL Server-Systems: Onlinedokumentation und Online-Versionshinweise. Books Online ist die Online-Dokumentation, die mit allen SQL Server-Komponenten geliefert wird, während die Online-Versionshinweise nur die neuesten Informationen enthalten, die nicht unbedingt in Technet24 bereitgestellt werden

die Dokumentation zu Books Online. (Der Grund dafür ist, dass Fehler und bestimmte Verhaltensprobleme, die das System betreffen, manchmal erkannt werden, nachdem die Online-Dokumentation geschrieben und veröffentlicht wurde.) Es wird dringend empfohlen, die Online-Versionshinweise sorgfältig zu lesen, um sich ein Bild von den Funktionen zu machen, die kurz vor der Auslieferung geändert wurden der endgültigen Veröffentlichung.

System Configuration Checker Eine der wichtigsten Planungsaufgaben ist die Prüfung, ob alle Bedingungen für eine erfolgreiche Installation des Datenbanksystems erfüllt sind. Wenn Sie auf System Configuration Checker klicken, wird die Komponente mit dem Namen Globale Regeln automatisch gestartet. Setup Global Rules identifiziert Probleme, die bei der Installation von SQL Server-Unterstützungsdateien auftreten können. Nach Abschluss dieser Aufgabe zeigt Ihnen das System an, wie viele Operationen überprüft wurden und wie viele davon fehlgeschlagen sind. Alle Fehler müssen behoben werden, bevor die Installation fortgesetzt werden kann.

SQL Server installieren Wenn Sie bereits eine Installation eines komplexen Softwareprodukts durchgeführt haben, kennen Sie wahrscheinlich das Gefühl der Unsicherheit, das mit dem erstmaligen Starten der Installation einhergeht. Dieses Gefühl kommt von der Komplexität des zu installierenden Produkts und der Vielfalt der Fragen, die während des Installationsprozesses beantwortet werden müssen. Da Sie das Produkt möglicherweise nicht vollständig verstehen, sind Sie (oder die Person, die die Software installiert) möglicherweise nicht sicher, dass Sie auf alle Fragen, die das Setup-Programm zur Ausführung seiner Aufgaben stellt, genaue Antworten geben können. Dieser Abschnitt hilft Ihnen, sich durch die Installation zurechtzufinden, indem er Ihnen Antworten auf die meisten Fragen gibt, die Ihnen wahrscheinlich begegnen werden. Wie der Name schon sagt, unterstützt Installation Center neben der Planung auch die Installation der Software. Installation Center zeigt Ihnen verschiedene Optionen bezüglich der Installation des Datenbanksystems und seiner Komponenten. Nachdem Sie im linken Bereich des Hauptfensters des Installation Centers auf Installation geklickt haben, wählen Sie Neuer SQL Server, wodurch ein Assistent zum Installieren von SQL Server 2016 gestartet wird. Wenn Sie auf Weiter klicken, wird die Seite Globale Regeln angezeigt. Diese Seite ist identisch mit der, die Sie sehen, wenn Sie mit System Configuration Checker beginnen (siehe vorheriger Abschnitt). Danach wird die Seite Produktaktualisierungen angezeigt. Auf dieser Seite können Sie sich entscheiden, den Microsoft Update-Dienst zu verwenden, um die Installation auf dem neuesten Stand zu halten. Wenn Sie auf Weiter klicken, wird die Seite Setup-Dateien installieren angezeigt und das Installationsprogramm installiert alle Setup-Dateien. Als nächstes wird die Seite Installationsregeln angezeigt (siehe Abbildung 2-3). Auf dieser Seite wird der Status einiger ausgeführter Installationsregeln angezeigt. Der Status von Regeln, die mit „Bestanden“ oder „Warnung“ gekennzeichnet sind

sind akzeptabel. Weiter klicken.

SQL Server-Installationscenter: Seite mit den Installationsregeln

Auf der nächsten Seite, Installationstyp (siehe Abbildung 2-4), können Sie entweder eine Neuinstallation von SQL Server 2016 durchführen oder Features zu einer vorhandenen Instanz von SQL Server 2016 hinzufügen. Wählen Sie die Option zum Ausführen einer Neuinstallation von SQL Server 2016 und klicken Sie auf Weiter.

SQL Server-Installationscenter: Seite Installationstyp

Geben Sie auf der Seite Produktschlüssel den 25-stelligen Schlüssel aus der Produktverpackung ein. (Alternativ können Sie eine kostenlose Edition der Software angeben, beispielsweise SQL Server Express.) Klicken Sie auf Weiter, um fortzufahren. Klicken Sie auf der Seite Lizenzbedingungen auf Ich stimme den Lizenzbedingungen zu. Weiter klicken. Wählen Sie auf der Seite Funktionsauswahl (siehe Abbildung 2-5) die zu installierenden Komponenten aus, indem Sie die entsprechenden Kontrollkästchen aktivieren. (Denken Sie daran, dass die Instanzfunktionen weiter oben in diesem Kapitel im Abschnitt „Welche SQL Server-Komponenten sollten installiert werden?“ vorgestellt wurden.) Außerdem können Sie unten auf der Seite das Verzeichnis angeben, in dem das Stammverzeichnis der Instanz gespeichert werden soll . (Sie sollten die Kontrollkästchen für Analysis Services und Reporting Services nicht aktivieren und ihre Installation für Kapitel 23 bzw. Kapitel 25 speichern.) Klicken Sie anschließend auf Weiter, um fortzufahren.

SQL Server Installation Center: Seite zur Funktionsauswahl Feature

VORSICHT Die Installation der PolyBase-Komponente erfordert Oracle Java SE Runtime Environment (JRE). Mit anderen Worten, wenn Sie diese Komponente auf der Seite Funktionsauswahl ausgewählt haben und das Java-Laufzeitsystem nicht installiert ist, schlägt der Installationsvorgang fehl. Auf der nächsten Seite, Funktionsregeln, führt das Setup-Programm Regeln aus, um zu bestimmen, ob der Installationsprozess blockiert wird. Wenn alle Prüfungen bestanden wurden (oder als „Nicht zutreffend“ markiert wurden), klicken Sie auf Weiter, um fortzufahren.

Auf der Seite Instanzkonfiguration (siehe Abbildung 2-6) können Sie zwischen der Installation einer Standard- oder einer benannten Instanz wählen. (Eine ausführliche Erläuterung dieser Instanztypen finden Sie im Abschnitt „Sollten mehrere Instanzen von SQL Server verwendet werden?“ weiter oben in diesem Kapitel.) Um die Standardinstanz zu installieren, klicken Sie auf Standardinstanz. Wenn bereits eine Standardinstanz installiert ist und Sie Standardinstanz auswählen, aktualisiert das Setup-Programm sie und bietet Ihnen die Möglichkeit, zusätzliche Komponenten zu installieren. Daher haben Sie eine weitere Möglichkeit, Komponenten zu installieren, die Sie in den vorherigen Installationsvorgängen übersprungen haben.

SQL Server Installation Center: Seite Instanzkonfiguration

Um eine neue benannte Instanz zu installieren, klicken Sie auf benannte Instanz und geben Sie einen neuen Namen in das angegebene Textfeld ein. Im unteren Teil der Seite sehen Sie die Liste der bereits auf Ihrem System installierten Instanzen. (MSSQLSERVER ist der Name der Standardinstanz für SQL

Server.) Klicken Sie auf Weiter, um fortzufahren. Die nächste Seite, Serverkonfiguration, enthält zwei Registerkarten. Die erste, Dienstkonten (siehe Abbildung 2-7), ermöglicht Ihnen die Angabe von Benutzernamen und entsprechenden Passwörtern für Dienste aller Komponenten, die während des Installationsvorgangs installiert werden. (Sie können ein Konto für alle Dienste einrichten, dies wird jedoch aus Sicherheitsgründen nicht empfohlen.)

SQL Server-Installationscenter: Seite Serverkonfiguration (Registerkarte Dienstkonten)

Um die Sortierung Ihrer Instanz auszuwählen, klicken Sie auf die zweite Registerkarte derselben Seite. (Sortierung definiert das Sortierverhalten für Ihre Instanz.) Sie können entweder die Standardsortierungen für die zu installierenden Komponenten auswählen oder auf Anpassen klicken, um andere vom System unterstützte Sortierungen auszuwählen. Klicke weiter um fortzufahren. Die Seite Datenbankmodulkonfiguration enthält mehrere verschiedene Registerkarten. Die erste Registerkarte,

Serverkonfiguration (siehe Abbildung 2-8), ermöglicht Ihnen die Auswahl des Authentifizierungsmodus für Ihr Database Engine-System. Wie Sie bereits wissen, unterstützt das Datenbankmodul den Windows-Authentifizierungsmodus und den gemischten Modus. Wenn Sie das Optionsfeld Windows-Authentifizierungsmodus auswählen, erstellt der Setup-Prozess die Anmeldung sa (Systemadministrator), die standardmäßig deaktiviert ist. (Zur Erläuterung der Anmeldungen siehe Kapitel 12.) Wenn Sie das Optionsfeld Gemischter Modus auswählen, müssen Sie die Anmeldung des Systemadministrators eingeben und bestätigen. Klicken Sie auf Aktuellen Benutzer hinzufügen, wenn Sie einen oder mehrere Benutzer hinzufügen möchten, die uneingeschränkten Zugriff auf die Instanz des Datenbankmoduls haben. (Wie Sie in Abbildung 2-8 sehen können, habe ich mein eigenes Konto für uneingeschränkten Zugriff hinzugefügt.)

SQL Server-Installationscenter: Konfiguration des Datenbankmoduls (Registerkarte Serverkonfiguration)

HINWEIS Sie können die Informationen zur Kontobereitstellung nach der Installation ändern. In diesem Fall müssen Sie den Datenbankmoduldienst MSSQLSERVER neu starten. Auf der zweiten Registerkarte der Seite Datenbankmodul-Konfiguration, Datenverzeichnisse, können Sie die Speicherorte für die Verzeichnisse angeben, in denen Datenbankmodul-bezogene Dateien gespeichert werden. Mit anderen Worten, der Installationsprozess listet Standardverzeichnisse auf, in denen der Installationsprozess verschiedene SQL Server-Komponenten speichert und die Sie ändern können. Die dritte Registerkarte, TempDB, ist eine neue in SQL Server 2016 und bezieht sich auf die tempdb-Systemdatenbank. (Diese Datenbank bietet Speicherplatz für benötigte temporäre Objekte.) Auf dieser Registerkarte können Sie die Anzahl der Datendateien konfigurieren, die tempdb zugewiesen werden (siehe Abbildung 2-9). Standardmäßig legt der Installationsprozess die Standardanzahl auf die Anzahl der Kerne auf Ihrem Computer fest. Wenn Ihr Computer mehr als acht Kerne hat, wird diese anfängliche Anzahl von tempdb-Datendateien auf 8 gesetzt.

SQL Server-Installationscenter: Konfiguration des Datenbankmoduls (Registerkarte TempDB)

Darüber hinaus können Sie auf dieser Registerkarte die anfängliche Größe und die automatische Vergrößerungseinstellung für die tempdb-Daten- und Protokolldateien festlegen. (Die detaillierte Diskussion der Anfangsgröße und der Autogrowth-Einstellungen einer Datenbank finden Sie in Kapitel 3.)

ANMERKUNG Die tempdb-Systemdatenbank ist häufig die Ursache schwerwiegender Leistungsprobleme. Aus diesem Grund ist die Möglichkeit, dieser Datenbank während des Installationsprozesses eine variable Anzahl von Dateien zuzuweisen, eine gute Idee des SQL Server-Teams.

Auf der letzten Registerkarte FILESTREAM können Sie FILESTREAM aktivieren. FILESTREAM ist standardmäßig deaktiviert. Aktivieren Sie zum Aktivieren das Kontrollkästchen FILESTREAM für TransactSQL-Zugriff aktivieren. (Der FILESTREAM-Speicher wird in Kapitel 4 ausführlich erklärt.) Klicken Sie auf Weiter. Was im nächsten Schritt angezeigt wird, hängt davon ab, ob Sie Analysis Services und/oder Reporting Services installieren möchten. (Für jede SQL Server-Komponente, die Sie zur Installation ausgewählt haben, wird eine Konfigurationsseite angezeigt.) Wenn Sie sich für die Installation einer oder beider entschieden haben, wird für Analysis Services und Reporting Services eine separate Seite angezeigt. (Sie können diese beiden Komponenten später problemlos installieren. Aus diesem Grund wird ihre Installation in Kapitel 23 bzw. Kapitel 25 erläutert.) Verwenden Sie die nächste Seite, Distributed Replay Controller Configuration, um die Benutzer anzugeben, denen Sie Administratorrechte erteilen möchten für den Distributed Replay Controller-Dienst. Benutzer mit Administratorberechtigungen haben uneingeschränkten Zugriff auf den Distributed Replay Controller-Dienst. Klicken Sie auf die Schaltfläche Aktuellen Benutzer hinzufügen, um die Benutzer hinzuzufügen, denen Sie Zugriffsberechtigungen für den Distributed Replay Controller-Dienst erteilen möchten. Klicken Sie auf die Schaltfläche Hinzufügen, um Zugriffsberechtigungen für den Distributed Replay Controller-Dienst hinzuzufügen. Ebenso sollten Sie die Benutzer angeben, denen Sie Administratorberechtigungen für den Distributed Replay-Clientdienst erteilen möchten.

HINWEIS Die Konfigurationsseiten von Distributed Replay Controller und Distributed Replay Client werden nur während des ersten Installationsvorgangs angezeigt. Die nächste Seite, die in Abbildung 2-10 dargestellt ist, bedarf etwas weiterer Erläuterungen. SQL Server 2016 enthält als integralen Bestandteil das R-System. (R ist eine Open-Source-Softwareumgebung, die viele Data-Mining-Techniken unterstützt.) Es ist Teil des GNU-Projekts der Free Software Foundation und muss auf die gleiche Weise lizenziert werden wie alle anderen derartigen Projekte. Microsoft R Open (auch Revolution R Open genannt) ist die erweiterte Distribution von R von Microsoft. Wenn Sie auf Akzeptieren klicken, laden Sie Microsoft R Open herunter und installieren es auf Ihrem Computer.

SQL Server Installation Center: Die Zustimmung zur Installation von Microsoft R Seite öffnen

HINWEIS Aufgrund seiner Komplexität ist Data Mining kein Thema für ein Einführungsbuch. Aus demselben Grund wird die Integration von R in SQL Server 2016 nicht erörtert. Die nächste Seite, Feature-Konfigurationsregeln, ähnelt der vorherigen Seite namens Feature-Regeln. Am Ende dieses Schrittes wird die Zusammenfassung aller Konfigurationsregeln angezeigt. Die letzte Seite, bevor der Installationsprozess tatsächlich beginnt, ist die Seite Bereit zur Installation. Auf dieser Seite können Sie die Zusammenfassung aller SQL Server-Komponenten überprüfen, die

wird installiert. Um den Installationsvorgang zu starten, klicken Sie auf Installieren. Setup zeigt Ihnen den Fortschritt Ihres Installationsprozesses an. Am Ende erscheint die Seite Vollständig (siehe Abbildung 2-11) mit dem Speicherort der Datei, in der das Zusammenfassungsprotokoll gespeichert ist. Klicken Sie auf Schließen, um den Installationsvorgang abzuschließen.

SQL Server-Installationscenter: Die vollständige Seite

Zusammenfassung Die Komponente SQL Server Installation Center kann sowohl zur Planung der Installation als auch zur Durchführung verwendet werden. Der wichtigste Schritt in der Planungsphase ist der Aufruf von System Configuration Checker. Diese Komponente identifiziert Probleme, die bei der Installation von SQL Server-Dateien auftreten können. Die Installation von SQL Server ist unkompliziert. Die wichtigste Entscheidung, die

Sie müssen in dieser Phase die zu installierenden Komponenten treffen, eine Entscheidung, die Sie während der Planungsphase vorbereitet haben. Im nächsten Kapitel wird SQL Server Management Studio beschrieben. Diese Komponente von SQL Server wird sowohl von Datenbankadministratoren als auch von Benutzern verwendet, um mit dem System zu interagieren.

SQL Server Management Studio In diesem Kapitel Einführung in SQL Server Management Studio Verwenden von SQL Server Management Studio mit dem Datenbankmodul Erstellungsaktivitäten mit SQL Server Management Studio

Dieses Kapitel stellt zunächst SQL Server Management Studio vor, einschließlich dessen, wie es mit einem Server verbunden wird, seine registrierten Server- und Objekt-Explorer-Komponenten sowie seine verschiedenen Benutzeroberflächenbereiche. Danach werden in diesem Kapitel ausführlich die SQL Server Management Studio-Funktionen im Zusammenhang mit der Datenbank-Engine erläutert, einschließlich der Verwaltung und Verwaltung von Datenbanken, die Sie verstehen müssen, um Transact-SQL-Anweisungen erstellen und ausführen zu können. Schließlich behandelt das Kapitel die Verwendung des Abfrageeditors, des Projektmappen-Explorers und des Debugging-Tools für die Erstellung von Technet24

Aktivitäten in SQL Server Management Studio.

Einführung in SQL Server Management Studio SQL Server bietet verschiedene Tools, die für verschiedene Zwecke verwendet werden, z. B. Systeminstallation, Konfiguration, Überwachung und Leistungsoptimierung. (Alle diese Tools werden in verschiedenen Kapiteln dieses Buches behandelt.) Das wichtigste Tool des Administrators für die Interaktion mit dem System ist SQL Server Management Studio. Sowohl Administratoren als auch Endbenutzer können mit diesem Tool unter anderem mehrere Server verwalten, Datenbanken entwickeln und Daten replizieren.

HINWEIS Dieses Kapitel ist den Aktivitäten des Endbenutzers gewidmet. Daher wird nur die Funktionalität von SQL Server Management Studio bezüglich der Erstellung von Datenbankobjekten mit der Database Engine ausführlich beschrieben. Alle administrativen Aufgaben, die dieses Tool unterstützt, werden ab Teil III behandelt. Um SQL Server Management Studio zu öffnen, wählen Sie Start | Alle Programme | Microsoft SQL Server 2016 | SQL Server Management Studio oder klicken Sie auf Start, und geben Sie Management Studio in die Windows-Desktopsuche ein. SQL Server Management Studio umfasst mehrere verschiedene Komponenten, die für die Erstellung, Verwaltung und Verwaltung des Gesamtsystems verwendet werden. Die folgenden Hauptkomponenten werden für diese Aufgaben verwendet: Registrierte Server Objekt-Explorer Abfrage-Editor Lösungs-Explorer Die ersten beiden Komponenten in der Liste werden in diesem Abschnitt erläutert. Der Abfrage-Editor und der Projektmappen-Explorer werden später in diesem Kapitel im Abschnitt „Erstellen von Aktivitäten mit SQL Server Management Studio“ erläutert. Um zur Hauptschnittstelle von SQL Server Management Studio zu gelangen, müssen Sie zunächst eine Verbindung zu einem Server herstellen, wie im Folgenden beschrieben.

Herstellen einer Verbindung mit einem Server Wenn Sie SQL Server Management Studio öffnen, wird das Dialogfeld Mit Server verbinden (siehe Abbildung 3-1) angezeigt, in dem Sie die erforderlichen Parameter für die Verbindung mit einem Server angeben können:

Das Dialogfeld „Mit Server verbinden“

Servertyp Wählen Sie für die Zwecke dieses Kapitels Database Engine (Datenbankmodul). Servername Wählen Sie den Namen des Servers aus, den Sie verwenden möchten, oder geben Sie ihn ein. (Im Allgemeinen können Sie SQL Server Management Studio mit jedem der installierten Produkte auf einem bestimmten Server verbinden.) Authentifizierung Wählen Sie zwischen den vier Authentifizierungstypen: Windows-Authentifizierung Stellen Sie über Ihr Windows-Konto eine Verbindung mit SQL Server her. Diese Option wird von Microsoft empfohlen. SQL Server-Authentifizierung Die Datenbank-Engine verwendet ihre eigene Authentifizierung. Active Directory-Kennwortauthentifizierung Dieses Authentifizierungsformular betrifft die Microsoft Azure SQL-Datenbank, die in diesem Buch nicht behandelt wird. Active Directory Integrated Authentication Dieses Authentifizierungsformular Technet24

betrifft auch die Microsoft Azure SQL-Datenbank, die in diesem Buch nicht behandelt wird.

HINWEIS Weitere Informationen zur SQL Server-Authentifizierung finden Sie in Kapitel 12. Wenn Sie auf Verbinden klicken, verbindet sich das Datenbankmodul mit dem angegebenen Server. Nach der Verbindung mit dem Datenbankserver wird das Standardfenster von SQL Server Management Studio angezeigt. Die Standarddarstellung ähnelt Visual Studio, sodass Benutzer ihre Erfahrung mit der Entwicklung in Visual Studio nutzen können, um SQL Server Management Studio einfacher zu verwenden. Abbildung 3-2 zeigt das SQL Server-Verwaltungsfenster mit mehreren Bereichen.

SQL Server Management Studio

HINWEIS SQL Server Management Studio bietet Ihnen eine einzigartige Schnittstelle zum Verwalten von Servern und Erstellen von Abfragen über alle SQL Server-Komponenten hinweg. Das bedeutet, dass SQL Server Management Studio eine Schnittstelle für das Datenbankmodul, Analysis Services, Integration Services und Reporting Services bietet. In diesem Kapitel wird die Verwendung von SQL Server Management Studio nur mit dem Datenbankmodul demonstriert.

Registrierte Server Registrierte Server werden als Bereich dargestellt, der es Ihnen ermöglicht, Verbindungen zu bereits verwendeten Servern aufrechtzuerhalten (siehe Abbildung 3-2). (Wenn der Bereich Registrierte Server nicht sichtbar ist, wählen Sie seinen Namen aus dem Menü Ansicht.) Sie können diese Verbindungen verwenden, um den Status eines Servers zu überprüfen oder seine Objekte zu verwalten. Jeder Benutzer hat eine separate Liste registrierter Server, die lokal gespeichert wird. Sie können der Liste aller Server neue Server hinzufügen oder einen oder mehrere vorhandene Server aus der Liste entfernen. Sie können auch vorhandene Server in Servergruppen gruppieren. Jede Gruppe sollte die Server enthalten, die logisch zusammengehören.

Objekt-Explorer Der Bereich Objekt-Explorer enthält eine Baumansicht aller Datenbankobjekte auf einem Server. (Wenn der Bereich Objekt-Explorer nicht sichtbar ist, wählen Sie Ansicht | Objekt-Explorer.) Die Baumansicht zeigt Ihnen eine Hierarchie der Objekte auf einem Server. Wenn Sie also einen Baum aufklappen, wird die logische Struktur eines entsprechenden Servers angezeigt. Mit dem Objekt-Explorer können Sie eine Verbindung zu mehreren Servern im selben Fenster herstellen. Der Server kann jeder der vorhandenen Server sein. Diese Funktion ist benutzerfreundlich, da Sie alle Server gleichen oder unterschiedlichen Typs von einem Ort aus verwalten können.

HINWEIS Der Objekt-Explorer verfügt über mehrere weitere Funktionen, die später in diesem Kapitel erläutert werden.

Organisieren und Navigieren in der SQL Server-Verwaltung Technet24

Die Bereiche von Studio Sie können jeden der Bereiche von SQL Server Management Studio andocken oder ausblenden. Wenn Sie mit der rechten Maustaste auf die Titelleiste oben im entsprechenden Bereich klicken, können Sie zwischen den folgenden Darstellungsmöglichkeiten wählen: Floating Der Bereich wird zu einem separaten schwebenden Bereich über den restlichen SQL Server Management Studio-Bereichen. Ein solches Fenster kann überall auf dem Bildschirm verschoben werden. Andockbar Ermöglicht das Verschieben und Andocken des Fensters an verschiedenen Positionen. Um den Bereich an eine andere Andockposition zu verschieben, klicken Sie auf die Titelleiste, ziehen Sie sie und legen Sie sie an der neuen Position ab. Dokument mit Registerkarten Sie können mithilfe des Designer-Fensters eine Gruppierung mit Registerkarten erstellen. Wenn dies geschehen ist, ändert sich der Status des Bereichs von andockbar zu Dokument mit Registerkarten. Ausblenden Schließt den Bereich.(Alternativ können Sie auf das × in der oberen rechten Ecke des Fensters klicken.) Um ein geschlossenes Fenster anzuzeigen, wählen Sie seinen Namen aus dem Menü „Ansicht“. Auto Hide Minimiert den Bereich und speichert ihn auf der linken Seite des Bildschirms. Um ein solches Fenster erneut zu öffnen (maximieren), bewegen Sie Ihre Maus über die Registerkarten auf der linken Seite des Bildschirms und klicken Sie auf die Stecknadel, um das Fenster in der geöffneten Position zu fixieren.

HINWEIS Der Unterschied zwischen den Optionen „Ausblenden“ und „Automatisch ausblenden“ besteht darin, dass die erstere Option den Bereich aus der Ansicht in SQL Server Management Studio entfernt, während die letztere den Bereich auf den seitlichen Bereich reduziert. Um die Standardkonfiguration wiederherzustellen, wählen Sie Fenster | Fensterlayout zurücksetzen. Der Bereich Objekt-Explorer wird auf der linken Seite angezeigt, während die Registerkarte Objekt-Explorer-Details auf der rechten Seite von SQL Server Management Studio angezeigt wird. (Die Registerkarte Details des Objekt-Explorers zeigt Informationen zum aktuell ausgewählten Knoten des Objekt-Explorers an.)

HINWEIS Sie werden feststellen, dass es oft mehrere Möglichkeiten gibt, dieselbe Aufgabe innerhalb von

SQL Server Management Studio. In diesem Kapitel werden mehr als eine Vorgehensweise aufgezeigt, während in den folgenden Kapiteln nur eine einzige Methode beschrieben wird. Verschiedene Leute bevorzugen unterschiedliche Methoden (einige doppelklicken gerne, einige klicken gerne auf die +/–-Zeichen, einige klicken gerne mit der rechten Maustaste, andere verwenden gerne die Pulldown-Menüs und andere verwenden genauso gerne die Tastenkombinationen wie möglich). Experimentieren Sie mit den verschiedenen Navigationsmöglichkeiten und verwenden Sie die Methoden, die sich für Sie am natürlichsten anfühlen. In den Bereichen Objekt-Explorer und Registrierte Server wird ein Unterobjekt nur angezeigt, wenn Sie auf das Pluszeichen (+) seines direkten Vorgängers in der Baumhierarchie klicken. Um die Eigenschaften eines Objekts anzuzeigen, klicken Sie mit der rechten Maustaste auf das Objekt und wählen Sie Eigenschaften. Ein Minuszeichen (–) links neben dem Namen eines Objekts zeigt an, dass das Objekt derzeit erweitert wird. Um alle Unterobjekte eines Objekts zu komprimieren, klicken Sie auf sein Minuszeichen. (Eine andere Möglichkeit wäre, auf den Ordner zu doppelklicken oder die LINKE PFEILTASTE zu drücken, während der Ordner ausgewählt ist.)

Verwenden von SQL Server Management Studio mit der Database Engine SQL Server Management Studio hat zwei Hauptzwecke: Verwaltung der Datenbankserver Verwaltung von Datenbankobjekten In den folgenden Abschnitten werden diese Funktionen von SQL Server Management Studio beschrieben.

Verwalten von Datenbankservern Folgende Verwaltungsaufgaben können Sie mit SQL Server Management Studio ausführen: Registrieren von Servern Herstellen einer Verbindung mit einem Server Erstellen neuer Servergruppen Verwalten mehrerer Server Starten und Stoppen von Servern In den folgenden Unterabschnitten werden diese Verwaltungsaufgaben beschrieben.

Registrieren von Servern Technet24

SQL Server Management Studio trennt die Aktivitäten der Registrierung von Servern und der Untersuchung von Datenbanken und ihren Objekten. (Beide Aktivitäten können mit dem Objekt-Explorer durchgeführt werden.) Jeder Server (lokal oder entfernt) muss registriert werden, bevor Sie seine Datenbanken und Objekte verwenden können. Ein Server kann während der ersten Ausführung von SQL Server Management Studio oder später registriert werden. Um einen Datenbankserver zu registrieren, klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Ordner Ihres Datenbankservers und wählen Sie Registrieren. (Wenn der Bereich Objekt-Explorer nicht auf Ihrem Bildschirm angezeigt wird, wählen Sie Ansicht | Objekt-Explorer.) Das Dialogfeld Neue Serverregistrierung wird angezeigt, wie in Abbildung 3-3 gezeigt. Wählen Sie den Namen des Servers, den Sie registrieren möchten, und den Authentifizierungsmodus. Klicken Sie auf Speichern.

Das Dialogfeld „Neue Serverregistrierung“

SQL Server Management Studio trennt auch die Aufgaben der Registrierung eines Servers und der Verbindung mit einem Server. Das bedeutet, dass Sie durch die Registrierung eines Servers nicht automatisch mit dem Server verbunden werden. Um vom Objekt-Explorer-Fenster aus eine Verbindung zu einem Server herzustellen, klicken Sie mit der rechten Maustaste auf den Servernamen und wählen Sie Verbinden.

Erstellen einer neuen Servergruppe Um eine neue Servergruppe im Bereich Registrierte Server zu erstellen, klicken Sie mit der rechten Maustaste auf Lokale Servergruppen und wählen Sie Neue Servergruppe. Geben Sie im Dialogfeld Eigenschaften der neuen Servergruppe einen (eindeutigen) Gruppennamen ein und beschreiben Sie optional die neue Gruppe.

Verwalten mehrerer Server Mit SQL Server Management Studio können Sie mithilfe des Objekt-Explorers mehrere Datenbankserver (so genannte Instanzen) auf einem Computer verwalten. Jede Instanz von Database Engine (Datenbankmodul) verfügt über einen eigenen Satz von Datenbankobjekten (System- und Benutzerdatenbanken), die nicht von verschiedenen Instanzen gemeinsam genutzt werden. Um einen Server und seine Konfiguration zu verwalten, klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Servernamen und wählen Sie Eigenschaften. Das Dialogfeld Servereigenschaften, das geöffnet wird, enthält mehrere verschiedene Seiten, z. B. Allgemein, Sicherheit und Berechtigungen. Die Seite General (siehe Abbildung 3-4) zeigt allgemeine Eigenschaften des Servers. Die Seite Sicherheit enthält Informationen zum Authentifizierungsmodus des Servers und zum Anmeldeüberwachungsmodus. Auf der Seite Berechtigungen werden alle Anmeldungen und Rollen angezeigt, die auf den Server zugreifen können. Im unteren Teil der Seite werden alle Berechtigungen angezeigt, die den Logins und Rollen erteilt werden können.

Das Dialogfeld „Servereigenschaften“: die Seite „Allgemein“

Sie können den vorhandenen Servernamen durch einen neuen Namen ersetzen. Klicken Sie im Objekt-Explorer-Fenster mit der rechten Maustaste auf den Server und wählen Sie Registrieren. Jetzt können Sie den Server umbenennen und die vorhandene Serverbeschreibung im Frame Registrierter Server ändern.

Benennen Sie die Server danach nicht um, da sich Namensänderungen auf andere Server auswirken können, die auf sie verweisen.

Starten und Stoppen von Servern Ein Database Engine (Datenbankmodul)-Server wird standardmäßig bei jedem Start des Windows-Betriebssystems automatisch gestartet. Um den Server mit SQL Server Management Studio zu starten, klicken Sie mit der rechten Maustaste auf den ausgewählten Server im Objekt-Explorer-Bereich und klicken Sie im Kontextmenü auf Start. Das Menü enthält auch Stopp- und Pause-Funktionen, mit denen Sie den aktivierten Server anhalten bzw. anhalten können.

Verwalten von Datenbanken mit dem Objekt-Explorer Die folgenden Verwaltungsaufgaben können Sie mit SQL Server Management Studio ausführen: Erstellen von Datenbanken ohne Verwendung von Transact-SQL Ändern von Datenbanken ohne Verwendung von Transact-SQL Verwalten von Tabellen ohne Verwendung von Transact-SQL Generieren und Ausführen von SQL-Anweisungen (beschrieben später im Abschnitt „Abfrageeditor“)

Erstellen von Datenbanken ohne Verwendung von Transact-SQL Sie können eine neue Datenbank erstellen, indem Sie den Objekt-Explorer oder die Sprache Transact-SQL verwenden. (Die Datenbankerstellung mit Transact-SQL wird in Kapitel 5 behandelt.) Wie der Name schon sagt, verwenden Sie auch den Objekt-Explorer, um die Objekte innerhalb eines Servers zu durchsuchen. Im Bereich Objekt-Explorer können Sie alle Objekte innerhalb eines Servers überprüfen und Ihren Server und Ihre Datenbanken verwalten. Der vorhandene Baum enthält unter anderem den Ordner Datenbanken. Dieser Ordner hat mehrere Unterordner, darunter einen für die Systemdatenbanken und einen für jede neue Datenbank, die von einem Benutzer erstellt wird. (System- und Benutzerdatenbanken werden in Kapitel 15 ausführlich behandelt.) Um eine Datenbank mit dem Objekt-Explorer zu erstellen, klicken Sie mit der rechten Maustaste auf Datenbanken und wählen Sie Neue Datenbank. Geben Sie im Dialogfeld Neue Datenbank (siehe Abbildung 3-5) den Namen der neuen Datenbank in das Feld Datenbankname ein und klicken Sie dann auf OK. Jede Datenbank hat mehrere unterschiedliche Eigenschaften, z. B. Dateityp, Anfangsgröße usw. Datenbankeigenschaften können im linken Bereich des Dialogfelds Neue Datenbank ausgewählt werden. Es gibt mehrere verschiedene Seiten (siehe den linken Bereich von Abbildung 3-6):

Das Dialogfeld Neue Datenbank

Dialogfeld „Datenbankeigenschaften“: Seite „Allgemein“

Allgemeine Dateien Dateigruppenoptionen

Änderungsverfolgungsberechtigungen Erweiterte Eigenschaften Spiegelung des Transaktionsprotokollversands

HINWEIS Für eine vorhandene Datenbank zeigt das System alle Eigenschaftsgruppen in der vorhergehenden Liste an. Für eine neue Datenbank, wie in Abbildung 3-5 gezeigt, gibt es nur drei Gruppen: Allgemein, Optionen und Dateigruppen. Die Seite Allgemein des Dialogfelds Datenbankeigenschaften (siehe Abbildung 3-6) zeigt unter anderem den Datenbanknamen, den Eigentümer der Datenbank und ihre Sortierung an. Die Eigenschaften der Datendateien, die zu einer bestimmten Datenbank gehören, werden auf der Seite Dateien aufgelistet und umfassen den Namen und die Anfangsgröße der Datei, den Speicherort der Datenbank und den Dateityp (z. B. PRIMARY). Eine Datenbank kann in mehreren Dateien gespeichert werden.

HINWEIS SQL Server verfügt über eine dynamische Speicherplatzverwaltung. Das bedeutet, dass Datenbanken so eingerichtet werden können, dass sie bei Bedarf automatisch erweitert und verkleinert werden. Wenn Sie die Autogrowth-Eigenschaft auf der Seite „Dateien“ ändern möchten, klicken Sie auf die Auslassungspunkte (…) in der Spalte „Autogrowth“ und nehmen Sie Ihre Änderungen im Dialogfeld „Autogrowth ändern“ vor. Das Kontrollkästchen Enable Autogrowth sollte aktiviert sein, damit die Datenbank automatisch wachsen kann. Jedes Mal, wenn beim Hinzufügen von Daten zur Datenbank nicht genügend Speicherplatz in der Datei vorhanden ist, fordert der Server den zusätzlichen Speicherplatz vom Betriebssystem an. Die Größe (in Megabyte) des zusätzlichen Speicherplatzes wird durch die Zahl im Dateiwachstumsrahmen desselben Dialogfelds festgelegt. Sie können auch entscheiden, ob die Datei ohne Einschränkungen (Standardwert) wachsen kann oder nicht. Wenn Sie das Dateiwachstum einschränken, müssen Sie die maximale Dateigröße angeben. Die Seite Dateigruppen des Dialogfelds Datenbankeigenschaften zeigt die Namen der Dateigruppen an, zu denen die Datenbankdatei gehört, die Art der Dateigruppe (Standard oder

nicht standardmäßig) und die zulässige Operation für die Dateigruppe (Lese-/Schreibzugriff oder schreibgeschützt). Auf der Seite Optionen des Dialogfelds Datenbankeigenschaften können Sie alle Optionen auf Datenbankebene anzeigen und ändern. Es gibt unter anderem die folgenden Gruppen von Optionen: Automatisch, Verschiedenes, Wiederherstellung und Status. Für State gibt es beispielsweise die folgenden vier Optionen: Database Read-Only Ermöglicht den schreibgeschützten Zugriff auf die Datenbank. Dies verbietet Benutzern, Daten zu ändern. (Der Standardwert ist False.) Datenbankstatus Beschreibt den Status der Datenbank. (Der Standardwert ist Normal.) Zugriff beschränken Beschränkt die Verwendung der Datenbank auf jeweils einen Benutzer. (Der Standardwert ist MULTI_USER.) Encryption Enabled Steuert den Verschlüsselungsstatus der Datenbank. (Der Standardwert ist False.) Die Seite Erweiterte Eigenschaften zeigt zusätzliche Eigenschaften der aktuellen Datenbank an. In diesem Dialogfeld können vorhandene Eigenschaften gelöscht und neue Eigenschaften hinzugefügt werden. Wenn Sie die Seite Berechtigungen wählen, öffnet das System das entsprechende Dialogfenster und zeigt alle Benutzer und Rollen mit ihren Berechtigungen an. (Eine Erläuterung der Berechtigungen finden Sie in Kapitel 12.) Die restlichen Seiten (Änderungsverfolgung, Spiegelung und Versand von Transaktionsprotokollen) beschreiben die Funktionen im Zusammenhang mit der Datenverfügbarkeit und werden in Kapitel 16 erläutert.

Ändern von Datenbanken ohne Verwendung des Transact-SQL-Objekt-Explorers kann auch verwendet werden, um eine vorhandene Datenbank zu ändern. Mit dieser Komponente können Sie Dateien und Dateigruppen ändern, die zur Datenbank gehören. Um neue Datendateien hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Datenbanknamen und wählen Sie Eigenschaften. Wählen Sie im Dialogfeld Datenbankeigenschaften die Option Dateien aus, klicken Sie auf Hinzufügen, und geben Sie den Namen der neuen Datei ein. Sie können der Datenbank auch eine (sekundäre) Dateigruppe hinzufügen, indem Sie Dateigruppen auswählen und auf Dateigruppe hinzufügen klicken.

HINWEIS Nur der Systemadministrator oder der Datenbankbesitzer kann die eben erwähnten Datenbankeigenschaften ändern.

Um eine Datenbank mit dem Objekt-Explorer zu löschen, klicken Sie mit der rechten Maustaste auf den Datenbanknamen und wählen Sie Löschen.

Verwalten von Tabellen ohne Transact-SQL Nachdem Sie eine Datenbank erstellt haben, besteht Ihre nächste Aufgabe darin, alle zugehörigen Tabellen zu erstellen. Wie bei der Datenbankerstellung können Sie Tabellen mit dem Objekt-Explorer oder TransactSQL erstellen. Auch hier wird nur der Objekt-Explorer besprochen. (Die Erstellung einer Tabelle und aller anderen Datenbankobjekte mit der Sprache Transact-SQL wird ausführlich in Kapitel 5 erläutert.) Um eine Tabelle mit dem Objekt-Explorer zu erstellen, erweitern Sie den Ordner Datenbanken, erweitern Sie die Datenbank, klicken Sie mit der rechten Maustaste auf den Unterordner Tabellen und klicken Sie dann auf Neu und danach auf Tabelle. Um die Erstellung einer Tabelle mit dem Objekt-Explorer zu demonstrieren, wird als Beispiel die Abteilungstabelle der Beispieldatenbank verwendet. Geben Sie die Namen aller Spalten mit ihren Eigenschaften ein. Geben Sie die Spaltennamen, ihre Datentypen und die NULL-Eigenschaft jeder Spalte in der zweidimensionalen Matrix ein, wie im oberen rechten Bereich von Abbildung 37 gezeigt.

Erstellen der Abteilungstabelle mit dem Objekt-Explorer

Alle vom System unterstützten Datentypen können angezeigt (und einer von ihnen ausgewählt) werden, indem Sie auf das Pfeilsymbol in der Spalte Datentyp klicken (der Pfeil erscheint, nachdem die Zelle ausgewählt wurde). Anschließend können Sie auf der Registerkarte Spalteneigenschaften für den ausgewählten Datentyp Einträge in die Zeilen Länge, Genauigkeit und Skalierung eingeben (siehe den unteren rechten Bereich von Abbildung 3-7). Einige Datentypen, wie z. B. CHARACTER, erfordern einen Wert für die Länge-Zeile, und einige, wie z. B. DECIMAL, erfordern einen Wert in den Zeilen Precision und Scale. Bei Datentypen wie INTEGER hingegen muss keiner dieser Einträge angegeben werden. (Die gültigen Einträge für einen angegebenen Datentyp werden in der Liste aller möglichen Spalteneigenschaften hervorgehoben.) Das Kontrollkästchen in der Spalte Nullen zulassen muss aktiviert sein, wenn eine Tabellenspalte das Einfügen von NULL-Werten in diese Spalte zulassen soll. Ebenso sollte ein Standardwert in die Zeile Standardwert oder Bindung der Registerkarte Spalteneigenschaften eingegeben werden. (Ein Standardwert ist ein Wert, der in eine Tabellenspalte eingefügt wird, wenn Technet24

es ist kein expliziter Wert dafür eingetragen.) Die Spalte dept_no ist der Primärschlüssel der Abteilungstabelle. (Eine Erläuterung der Primärschlüssel der Beispieldatenbank finden Sie in Kapitel 1.) Um eine Spalte als Primärschlüssel einer Tabelle anzugeben, müssen Sie mit der rechten Maustaste auf die Spalte klicken und Primärschlüssel festlegen wählen. Klicken Sie abschließend auf das × im rechten Bereich mit den Informationen zur neuen Tabelle. Danach zeigt das System das Dialogfeld Name auswählen an, in dem Sie den Tabellennamen eingeben können. Um die Eigenschaften einer vorhandenen Tabelle anzuzeigen, doppelklicken Sie auf den Ordner der Datenbank, zu der die Tabelle gehört, doppelklicken Sie auf Tabellen, klicken Sie dann mit der rechten Maustaste auf den Namen der Tabelle und wählen Sie Eigenschaften. Um eine Tabelle umzubenennen, klicken Sie mit der rechten Maustaste auf den Namen der Tabelle im Ordner Tabellen und wählen Sie Umbenennen. Um eine Tabelle zu entfernen, klicken Sie mit der rechten Maustaste auf den Namen der Tabelle im Ordner Tabellen in der Datenbank, zu der die Tabelle gehört, und wählen Sie Löschen.

HINWEIS Sie sollten jetzt die anderen drei Tabellen der Beispieldatenbank erstellen. Den Aufbau dieser Tabellen finden Sie in der Einleitung des Buches. Nachdem Sie alle vier Tabellen der Beispieldatenbank (Employee, Department, Project und works_on) erstellt haben, können Sie ein weiteres Feature von SQL Server Management Studio verwenden, um das entsprechende Entity-Relationship-Diagramm (ER) der Beispieldatenbank anzuzeigen. (Das Konvertieren der vorhandenen Tabellen einer Datenbank in das entsprechende ER-Diagramm wird als Reverse Engineering bezeichnet.) Um das ER-Diagramm der Beispieldatenbank anzuzeigen, klicken Sie mit der rechten Maustaste auf den Unterordner Database Diagrams der Beispieldatenbank und wählen Sie New Database Diagram.

HINWEIS Wenn ein Dialogfeld geöffnet wird, in dem Sie gefragt werden, ob die Stützobjekte erstellt werden sollen, klicken Sie auf Ja. Der erste (und einzige) Schritt besteht darin, Tabellen auszuwählen, die dem Diagramm hinzugefügt werden. Nachdem alle vier Tabellen der Beispieldatenbank hinzugefügt wurden, schließt der Assistent die Arbeit ab und erstellt das Diagramm (siehe Abbildung 3-8).

Erstes Diagramm der Beispieldatenbank

Das in Abbildung 3.8 gezeigte Diagramm ist nicht das endgültige Diagramm der Beispieldatenbank, da es zwar alle vier Tabellen mit ihren Spalten (und den entsprechenden Primärschlüsseln) zeigt, aber keine Beziehung zwischen den Tabellen zeigt. Eine Beziehung zwischen zwei Tabellen basiert auf dem Primärschlüssel einer Tabelle und der (möglicherweise) entsprechenden Spalte(n) der anderen Tabelle. (Eine ausführliche Diskussion dieser Beziehungen und der referentiellen Integrität finden Sie in Kapitel 5.) Es gibt genau drei Beziehungen zwischen den vorhandenen Tabellen der Beispieldatenbank: Erstens haben die Tabellen Abteilung und Mitarbeiter eine 1:N-Beziehung, da für jeden Wert in der Primärschlüsselspalte der Abteilungstabelle (dept_no), gibt es einen oder mehrere entsprechende Werte in der Spalte dept_no der Employee-Tabelle. Analog besteht eine Beziehung zwischen den Tabellen mitarbeiter und works_on, da nur die Werte vorhanden sind, die im Primärschlüssel der Tabelle mitarbeiter vorhanden sind (emp_no)

erscheinen auch in der Spalte emp_no der Tabelle works_on. Die dritte Beziehung besteht zwischen den Tabellen project und works_on, da nur Werte, die im Primärschlüssel der Tabelle project (pr_no) vorhanden sind, auch in der Spalte pr_no der Tabelle works_on erscheinen. Um jede der drei beschriebenen Beziehungen zu erstellen, müssen Sie das Diagramm mit der Spalte umgestalten, die der Primärschlüsselspalte der anderen Tabelle entspricht. (Eine solche Spalte wird als Fremdschlüssel bezeichnet.) Um dies zu sehen, verwenden Sie die Mitarbeitertabelle und definieren deren Spalte dept_no als Fremdschlüssel der Abteilungstabelle: 1. Klicken Sie auf das erstellte Diagramm, klicken Sie mit der rechten Maustaste auf die grafische Form von die Mitarbeitertabelle im Detailbereich und wählen Sie Beziehungen. Klicken Sie im Dialogfeld Fremdschlüsselbeziehungen auf Hinzufügen. 2. Erweitern Sie im Dialogfeld die Spalte Tabellen- und Spaltenspezifikation und klicken Sie rechts auf die Schaltfläche …. 3. Wählen Sie die Tabelle mit dem entsprechenden Primärschlüssel (die Abteilungstabelle) aus. 4. Wählen Sie die Spalte dept_no dieser Tabelle als Primärschlüssel und die gleichnamige Spalte in der Mitarbeitertabelle als Fremdschlüssel und klicken Sie auf OK. Klicken Sie auf Schließen. Abbildung 3-9 zeigt das geänderte Diagramm, nachdem alle drei Beziehungen in der Beispieldatenbank erstellt wurden.

Das endgültige Diagramm der Beispieldatenbank

Authoring-Aktivitäten mit SQL Server Management Studio SQL Server Management Studio bietet Ihnen eine vollständige Authoring-Umgebung für alle Arten von Abfragen. Sie können Abfragen erstellen, speichern, laden und bearbeiten. Mit SQL Server Management Studio können Sie an Abfragen arbeiten, ohne mit einem bestimmten Server verbunden zu sein. Dieses Tool bietet Ihnen auch die Möglichkeit, Ihre Abfragen mit unterschiedlichen Projekten zu entwickeln. Die Authoring-Funktionen sind sowohl dem Abfrage-Editor als auch dem Projektmappen-Explorer zugeordnet, die beide in diesem Abschnitt beschrieben werden. Neben diesen beiden Komponenten von SQL Server Management Studio beschreiben wir, wie Sie SQL-Code mit dem vorhandenen Debugger debuggen können.

Abfrage-Editor Um den Abfrage-Editor-Bereich zu starten, klicken Sie in der Symbolleiste von SQL Server Management Studio auf die Schaltfläche Neue Abfrage. Wenn Sie es erweitern, um alle möglichen Abfragen anzuzeigen, wird mehr als nur eine Datenbankmodul-Abfrage angezeigt. Standardmäßig erhalten Sie eine neue Datenbankmodul-Abfrage, aber andere Abfragen sind möglich. Sobald Sie den Abfrage-Editor öffnen, zeigt Ihnen die Statusleiste am unteren Rand des Bereichs an, ob Ihre Abfrage im verbundenen oder getrennten Zustand ist. Wenn Sie nicht automatisch mit dem Server verbunden werden, wird das Dialogfeld Mit SQL Server verbinden angezeigt, in dem Sie den Namen des Datenbankservers eingeben können, zu dem Sie eine Verbindung herstellen möchten, und den Authentifizierungsmodus auswählen.

HINWEIS Die getrennte Bearbeitung bietet mehr Flexibilität als die verbundene Bearbeitung. Sie können Abfragen bearbeiten, ohne einen Server auswählen zu müssen, und Sie können ein bestimmtes Abfrage-Editor-Fenster von einem Server trennen und mit einem anderen verbinden, ohne ein weiteres Fenster öffnen zu müssen. (Sie können die getrennte Bearbeitung verwenden, indem Sie im Dialogfeld Verbindung mit SQL Server herstellen auf die Schaltfläche Abbrechen klicken.) Der Abfrage-Editor kann von Endbenutzern für die folgenden Aufgaben verwendet werden: Generieren und Ausführen von Transact-SQL-Anweisungen Speichern der generierten Transact-SQL-Anweisungen in a file Generieren und Analysieren von Ausführungsplänen für generierte Abfragen Grafische Darstellung des Ausführungsplans für eine ausgewählte Abfrage Der Abfrage-Editor enthält einen internen Texteditor und eine Auswahl an Schaltflächen in seiner Symbolleiste. Das Hauptfenster ist in einen Abfragebereich (oben) und einen Ergebnisbereich (unten) unterteilt.Benutzer geben die Transact-SQL-Anweisungen (Abfragen), die sie ausführen möchten, in den Abfragebereich ein, und nachdem das System die Abfragen verarbeitet hat, wird die Ausgabe im Ergebnisbereich angezeigt. Das in Abbildung 3-10 gezeigte Beispiel zeigt eine in den Abfrageeditor eingegebene Abfrage und die zurückgegebene Ausgabe. Die erste Anweisung im Abfragebereich, USE, gibt die Beispieldatenbank als aktuelle Datenbank an. Die zweite Anweisung, SELECT, ruft alle Zeilen der Tabelle works_on ab. Wenn Sie in der Symbolleiste des Abfrageeditors auf die Schaltfläche Neue Abfrage klicken und dann Ausführen auswählen oder F5 drücken, werden die Ergebnisse dieser Anweisungen in den Ergebnissen zurückgegeben

Abfrageeditor mit einer Abfrage und ihren Ergebnissen

HINWEIS Sie können mehrere verschiedene Fenster öffnen, dh mehrere verschiedene Verbindungen zu einer oder mehreren Database Engine (Datenbankmodul)-Instanzen. Sie erstellen neue Verbindungen, indem Sie in der Symbolleiste auf die Schaltfläche Neue Abfrage klicken. Die folgenden zusätzlichen Informationen zur Ausführung der Anweisung(en) werden in der Statusleiste am unteren Rand des Fensters des Abfrageeditors angezeigt:

Der Status des aktuellen Vorgangs (z. B. „Abfrage erfolgreich ausgeführt“) Name des Datenbankservers Aktueller Benutzername und Serverprozess-ID Aktueller Datenbankname Verstrichene Zeit für die Ausführung der letzten Abfrage Die Anzahl der abgerufenen Zeilen Eine der Hauptfunktionen von SQL Server Management Studio ist einfach zu bedienen, und das gilt auch für die Abfrage-Editor-Komponente. Der Abfrage-Editor unterstützt viele Funktionen, die das Codieren von Transact-SQL-Anweisungen vereinfachen. Erstens verwendet der Abfrage-Editor Syntaxhervorhebung, um die Lesbarkeit von Transact-SQL-Anweisungen zu verbessern. Es zeigt beispielsweise alle reservierten Wörter in Blau, alle Variablen in Schwarz, Zeichenfolgen in Rot und Kommentare in Grün an. (Eine Erörterung reservierter Wörter finden Sie im nächsten Kapitel.) Es gibt auch die kontextsensitive Hilfefunktion Dynamische Hilfe, die es Ihnen ermöglicht, Hilfe zu einer bestimmten Anweisung zu erhalten. Wenn Sie die Syntax einer Anweisung nicht kennen, markieren Sie diese Anweisung einfach im Editor und wählen Sie Hilfe | Dynamische Hilfe. Sie können auch Optionen verschiedener Transact-SQL-Anweisungen hervorheben, um den entsprechenden Text aus der Onlinedokumentation abzurufen.

HINWEIS Die Datenbank-Engine unterstützt das SQL Intellisense-Tool. Intellisense ist eine Form der automatischen Autovervollständigung. Mit anderen Worten, dieses Add-In ermöglicht Ihnen den Zugriff auf Beschreibungen häufig verwendeter Elemente von Transact-SQL-Anweisungen, ohne die Tastatur zu verwenden. Der Objekt-Explorer kann Ihnen auch beim Bearbeiten von Abfragen helfen. Wenn Sie beispielsweise sehen möchten, wie die entsprechende Transact-SQL-Anweisung zum Erstellen der Mitarbeitertabelle aussieht, führen Sie einen Drilldown zu diesem Datenbankobjekt durch, klicken Sie mit der rechten Maustaste auf den Tabellennamen, wählen Sie Skripttabelle als und wählen Sie CREATE to New Query Editor Fenster. Der Objekt-Explorer ist sehr nützlich, wenn Sie den grafischen Ausführungsplan für eine bestimmte Abfrage anzeigen möchten. (Der Ausführungsplan ist der Plan, der vom Optimierer ausgewählt wurde, um eine bestimmte Abfrage auszuführen.) Wenn Sie Abfrage | . auswählen Geschätzten Ausführungsplan anzeigen, zeigt das System den grafischen Plan anstelle der Ergebnismenge für die angegebene Abfrage an. Dieses Thema wird ausführlich in Kapitel 19 behandelt.

Die Bearbeitung von Projektmappen-Explorer-Abfragen in SQL Server Management Studio ist lösungsbasiert. Wenn Sie über die Schaltfläche Neue Abfrage eine leere Abfrage starten, basiert diese weiterhin auf einer leeren Lösung. Sie können dies sehen, indem Sie Ansicht | . wählen Lösungs-Explorer, direkt nachdem Sie Ihre leere Abfrage geöffnet haben. Einer Projektmappe können null, ein oder mehrere Projekte zugeordnet sein. Eine leere Projektmappe enthält kein Projekt. Wenn Sie der Projektmappe ein Projekt zuordnen möchten, schließen Sie Ihre leere Projektmappe, den Projektmappen-Explorer und das Abfrage-Editor-Fenster und starten Sie ein neues Projekt, indem Sie Datei | . wählen Neu | Projekt. Geben Sie im Fenster Neues Projekt den Namen Ihres Projekts und seinen Speicherort ein. Ein Projekt ist eine Methode zum Organisieren von Dateien an einem ausgewählten Speicherort. Sie können einen Namen für das Projekt und seinen Speicherort auf der Festplatte auswählen. Wenn Sie ein neues Projekt erstellen, starten Sie standardmäßig eine neue Projektmappe. Sie können mithilfe des Projektmappen-Explorers ein Projekt zu einer vorhandenen Projektmappe hinzufügen. Nachdem das neue Projekt und die Projektmappe erstellt wurden, zeigt Projektmappen-Explorer Knoten in jedem Projekt für Verbindungen, Abfragen und Sonstiges an. Um ein neues Abfrage-Editor-Fenster zu öffnen, klicken Sie mit der rechten Maustaste auf den Knoten Abfragen und wählen Sie Neue Abfrage.

SQL Server-Debugging SQL Server Management Studio ermöglicht Ihnen das Debuggen Ihres SQL-Codes mit dem vorhandenen Debugger. Um mit dem Debuggen zu beginnen, wählen Sie Debug | Starten Sie das Debuggen im Hauptmenü von SQL Server Management Studio. Ein Batch aus Kapitel 8 (siehe Beispiel 8.1) wird hier verwendet, um die Funktionsweise des Debuggers zu demonstrieren. (Ein Batch ist eine Folge von SQL-Anweisungen und prozeduralen Erweiterungen, die eine logische Einheit umfasst und zur Ausführung aller im Batch enthaltenen Anweisungen an die Datenbank-Engine gesendet wird.) Abbildung 3-11 zeigt einen Batch, der die Anzahl der Mitarbeiter zählt, für die gearbeitet wird das p1-Projekt. Wenn die Zahl 4 oder mehr beträgt, wird die entsprechende Meldung angezeigt. Andernfalls werden Vor- und Nachname der Mitarbeiter gedruckt.

Sie können die in Abbildung 3-11 gezeigten Breakpoints setzen, indem Sie einfach vor die Zeile klicken, in der der Ausführungsprozess stoppen soll. Zu Beginn zeigt der Editor links neben der ersten Codezeile einen gelben Pfeil an. Sie können den Pfeil verschieben, indem Sie Debug | . wählen Weitermachen. In diesem Fall werden alle Anweisungen bis zum ersten Breakpoint ausgeführt und der gelbe Pfeil bewegt sich zu diesem Breakpoint. Im Debugger-Modus öffnet SQL Server Management Studio zwei Bereiche, die sich am unteren Rand des Editors befinden. Alle Informationen zum Debugging-Prozess werden in diesen beiden Fenstern angezeigt. Beide Bereiche verfügen über Registerkarten, die Sie auswählen können, um zu steuern, welche Informationen im Bereich angezeigt werden. Der linke Bereich enthält Autos, Locals und bis zu vier Watch-Registerkarten. Der rechte Bereich enthält die Registerkarten Aufrufliste, Haltepunkte, Befehlsfenster, Direktfenster und Ausgabe. Sie können beispielsweise die Registerkarte Lokal verwenden, um Werte von Variablen anzuzeigen, die Registerkarte Aufrufliste, um die Aufrufliste zu überprüfen, und die Registerkarten Überwachen, um einen Teil des Codes eines SQL-Ausdrucks einzugeben (oder zu ziehen) und auszuwerten. (In

Abbildung 3-11, zum Beispiel, die Registerkarte Watch1 ist im linken Fensterbereich aktiviert und die Registerkarte Breakpoints im rechten Fensterbereich.) Um den Debugging-Prozess zu beenden, wählen Sie das blaue Quadrat-Symbol in der Debugging-Symbolleiste oder wählen Sie Debug | Beenden Sie das Debuggen. Mit dem Debugger können Sie Folgendes tun: Eine Breakpoint-Bedingung angeben Eine Breakpoint-Bedingung ist ein SQL-Ausdruck, dessen Auswertung bestimmt, ob der Breakpoint aufgerufen wird. Um eine Breakpoint-Bedingung anzugeben, klicken Sie mit der rechten Maustaste auf das Breakpoint-Symbol (den roten Kreis am linken Rand) und klicken Sie im Popup-Menü auf Bedingung. Geben Sie im Dialogfeld Breakpoint-Bedingung einen booleschen Ausdruck ein und wählen Sie entweder Ist True, wenn der Ausdruck unterbrochen werden soll, wenn der Ausdruck wahr ist, oder Hat sich geändert, wenn Sie den Break unterbrechen möchten, wenn sich der Wert geändert hat. Festlegen einer Haltepunkt-Trefferzahl Eine Trefferzahl ist ein Zähler, der angibt, wie oft ein Haltepunkt erreicht wird. Wenn die angegebene Trefferanzahl erreicht ist und eine angegebene Haltepunktbedingung erfüllt ist, führt der Debugger die für den Haltepunkt angegebene Aktion aus. Die Aktion kann eine der folgenden sein: Immer unterbrechen (die Standardaktion) Unterbrechen, wenn die Trefferzahl einem angegebenen Wert entspricht Unterbrechung, wenn die Trefferzahl einem Vielfachen eines angegebenen Werts entspricht Unterbrechung, wenn die Trefferzahl größer oder gleich einem angegebenen Wert ist value Um eine Trefferanzahl anzugeben, klicken Sie mit der rechten Maustaste auf das Breakpoint-Symbol im Fenster Breakpoints und klicken Sie im Popup-Menü auf Hit Count. Wählen Sie im Dialogfeld Breakpoint Hit Count eine der Aktionen aus der vorherigen Liste aus. Wenn Sie die Trefferanzahl auf einen Wert festlegen müssen, geben Sie eine ganze Zahl in das angezeigte Textfeld ein. Klicken Sie auf OK, um die Änderungen vorzunehmen. Angeben eines Breakpoint-Filters Ein Breakpoint-Filter beschränkt den Breakpoint darauf, nur auf bestimmten Computern, Prozessen oder Threads zu arbeiten. Um einen Breakpoint-Filter anzugeben, wählen Sie Breakpoint | Filter. Anschließend können Sie im Dialogfeld "Haltepunktfilter" die Ressource angeben, die Sie begrenzen möchten. Klicken Sie auf OK, um die Änderungen vorzunehmen. Festlegen einer Haltepunktaktion Eine Haltepunktaktion bei Treffer gibt eine benutzerdefinierte Aufgabe an, die ausgeführt wird, wenn der Haltepunkt aufgerufen wird. Die Standardaktion für einen Haltepunkt besteht darin, die Ausführung zu unterbrechen, wenn sowohl die Trefferanzahl als auch die Haltepunktbedingung erfüllt sind. Die Alternative könnte darin bestehen, eine bestimmte Nachricht zu drucken. Um eine Breakpoint-Aktion anzugeben, klicken Sie mit der rechten Maustaste auf das Breakpoint-Symbol und dann auf Technet24

Bei Hit auf das Popup-Menü. Wählen Sie im Dialogfeld Wenn Haltepunkt erreicht wird die gewünschte Aktion aus. Klicken Sie auf OK, um die Änderungen vorzunehmen. Verwenden des QuickWatch-Fensters Sie können das QuickWatch-Fenster verwenden, um den Wert eines Transact-SQL-Ausdrucks anzuzeigen und diesen Ausdruck dann in einem Watch-Fenster zu speichern. (Um das QuickWatch-Fenster auszuwählen, wählen Sie Debug | QuickWatch.) Um einen Ausdruck in QuickWatch auszuwählen, wählen Sie den Namen des Ausdrucks entweder aus oder geben Sie ihn in das Feld Ausdruck des QuickWatch-Fensters ein. Verwenden des Popup-Fensters „Quick Info“ Wenn Sie den Cursor über einen SQL-Bezeichner bewegen, zeigt das Popup-Fenster „Quick Info“ den Namen des Ausdrucks und seinen aktuellen Wert an.

Zusammenfassung In diesem Kapitel wurde das wichtigste SQL Server-Tool behandelt: SQL Server Management Studio. SQL Server Management Studio ist sowohl für Endbenutzer als auch für Administratoren sehr nützlich. Es ermöglicht die Ausführung vieler administrativer Funktionen. Diese werden hier angerissen, aber später im Buch ausführlicher behandelt. In diesem Kapitel wurden die meisten wichtigen Funktionen von SQL Server Management Studio in Bezug auf Endbenutzer behandelt, z. B. das Erstellen von Datenbanken und Tabellen. SQL Server Management Studio enthält unter anderem die folgenden Komponenten: Registrierte Server Ermöglicht Ihnen, SQL Server-Instanzen zu registrieren und eine Verbindung zu ihnen herzustellen. Objekt-Explorer Enthält eine Baumansicht aller Datenbankobjekte auf einem Server. Abfrage-Editor Ermöglicht Endbenutzern das Generieren, Ausführen und Speichern von Transact-SQL-Anweisungen. Darüber hinaus bietet es die Möglichkeit, Abfragen zu analysieren, indem der Ausführungsplan angezeigt wird. Lösungs-Explorer Ermöglicht das Erstellen von Lösungen. Einer Lösung können null oder mehr Projekte zugeordnet sein. Debugger Ermöglicht das Debuggen von Code. Das nächste Kapitel stellt die Transact-SQL-Sprache vor und beschreibt ihre Hauptkomponenten. Nach der Einführung in die grundlegenden Konzepte und vorhandenen Datentypen werden in diesem Kapitel auch Systemfunktionen beschrieben, die Transact-SQL unterstützt.

Erstellen Sie mit SQL Server Management Studio eine Datenbank namens test. Speichern Sie die Datenbank in einer Datei namens testdate_a im Verzeichnis C: mp und weisen Sie ihr 10 MB Speicherplatz zu. Konfigurieren Sie die Datei, in der sich die Datenbank befindet, so, dass sie in Schritten von 2 MB wächst und insgesamt 20 MB nicht überschreitet. E.3.2 Ändern Sie mit SQL Server Management Studio das Transaktionsprotokoll für die Testdatenbank. Geben Sie der Datei eine Anfangsgröße von 3 MB mit einem Wachstum von 20 Prozent. Lassen Sie die Datei für das Transaktionsprotokoll automatisch wachsen. E.3.3 Erlauben Sie mit SQL Server Management Studio nur dem Datenbankbesitzer und dem Systemadministrator, die Testdatenbank zu verwenden. Ist es möglich, dass beide Benutzer die Datenbank gleichzeitig verwenden? E.3.4 Erstellen Sie mit SQL Server Management Studio alle vier Tabellen der Beispieldatenbank (siehe Kapitel 1) mit allen ihren Spalten. E.3.5 Zeigen Sie mit SQL Server Management Studio an, welche Tabellen die AdventureWorks-Datenbank enthält. Wählen Sie anschließend die Tabelle Person.Address aus, und zeigen Sie ihre Eigenschaften an. E.3.6 Geben Sie im Abfrage-Editor die folgende Transact-SQL-Anweisung ein:

Erklären Sie die im Ergebnisfenster angezeigte Fehlermeldung. E.3.7 Speichern Sie die Transact-SQL-Anweisung in E.3.6 in der Datei C: mpcreatedb.sql. E.3.8 Wie können Sie mit dem Abfrageeditor die Testdatenbank zur aktuellen Datenbank machen? E.3.9 Machen Sie mit dem Abfrage-Editor die AdventureWorks-Datenbank zur aktuellen Datenbank und

Führen Sie die folgende Transact-SQL-Anweisung aus:

Wie können Sie die Ausführung der Anweisung stoppen? E.3.10 Ändern Sie mit dem Abfrage-Editor die Ausgabe der SELECT-Anweisung (E.3.9), sodass die Ergebnisse als Text (und nicht als Raster) erscheinen.


Schau das Video: How to install ArcGIS in windows 10