Firebird 2.1 Das freie RDBMS. Robert Dollinger



Ähnliche Dokumente
5.8 Bibliotheken für PostgreSQL

Entwicklungsumgebung für die Laborübung

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Java Database Connectivity-API (JDBC)

PostgreSQL Ein Überblick

Java Database Connectivity-API (JDBC)

Chancen und Wachstumsfelder für PostgreSQL

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Firebird, eine Open Source (Erfolgs-)Geschichte

Neue Features Oracle Database 12.2 Wann denn endlich?

Schnellübersichten. SQL Grundlagen und Datenbankdesign

NoSQL mit Postgres 15. Juni 2015

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Übung 3. Interaktive Abfragen auf eine SQL-Datenbank. Prof. Dr. Andreas Schmietendorf. Wirtschaftsinformatik

Datenbank-Dienste des RRZE Björn Reimer, 19. Januar 2006

Üben von DDL und DML. Ergebnis:

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Oracle 10g Einführung

Entwicklungsumgebung für die Übung

Android Programmierung. Studiengang MI

Entwicklungsumgebung für die Laborübung

Neugestaltung der Datenbank des Chemnitzer Studentennetzes

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Firebird RDBMS. Einführung in das relationale Datenbanksystem Firebird

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Willkommen. Datenbanken und Anbindung

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Grundlagen der Informatik

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

QMF Tabelle Q.OBJECT_DATA in DB2

SQL-Vertiefung. VL Datenbanksysteme. Ingo Feinerer

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Abfragen (Queries, Subqueries)

Datenbanksysteme noch Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6

Moderne Datenbankkonzepte

Datenmanipulation in SQL (1): Subselect:

Übersicht der wichtigsten MySQL-Befehle

ACCESS SQL ACCESS SQL

Die Anweisung create table

Datenbanksysteme SS 2007

Tag 2 Inhaltsverzeichnis

Praktische SQL-Befehle 2

Übung PL/SQL Trigger Lösungen

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler

Übung 2. Verwendung eines RDBMS. Prof. Dr. Andreas Schmietendorf 1. Übung 2

PHP- Umgang mit Datenbanken (1)

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Oracle native json Support. Erste Schritte

Praktische SQL-Befehle

C++ Anwendungskurs Tag 4: Datenbanken Daniela Horn Institut für Neuroinformatik Real-time Computer Vision

Bibliografische Informationen digitalisiert durch

Entwicklungsumgebung für die Übung

Erzeugung und Veränderung von Tabellen

SQL-Programmteile in der Vorlesung. SQL-Vertiefung. Definition von Constraints. Constraint Typen

Oracle Database Vault Beispiele zur Benutzung

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Wiederholung VU Datenmodellierung

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - WS Metadaten. Andreas Schmidt Metadaten 1/17

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

SQL (Structured Query Language) Schemata Datentypen

Relationales Datenbanksystem Oracle

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

U 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN:

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Oracle Virtual Private Database

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

Metadaten oder Metainformationen sind Daten, die Informationen über Merkmale anderer Daten enthalten, aber nicht diese Daten selbst (Wikipedia)

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

DOAG 2016 Oracle APEX Security

Datenmanipulation in SQL. Select Anweisung

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Die Datenmanipulationssprache SQL

Eine Einführung in MySQL

Präsentation mongodb. David Wild

PostgreSQL High-Security

Oracle & Java HOW TO

Web Technologien Klassische Datenbanken am Beispiel von MySQL

Prozedurale Datenbank- Anwendungsprogrammierung

Unified-E SQL Adapter

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

Datenschutz: Zugriffsrechte in SQL

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Objektrelationale, erweiterbare Datenbanken WS 04/05

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)

Transkript:

Firebird 2.1 Das freie RDBMS Robert Dollinger

Themen Die Geschichte von Firebird Das Firebird Projekt Unterstützte Plattformen Classic Server Super Server Embedded Server Tools Neue Features von Firebird 2.1

Die Geschichte von Firebird 1984 Jim Starkey entwickelt InterBase 1991 Interbase wird von Borland gekauft 25.07.2000 Interbase 6 wird von Borland unter der IPL freigegeben 31.07.2000 Start des Firebird Projekts bei Sourceforge 12.03.2002 Firebird 1.0.0 21.02.2004 Firebird 1.5.0 12.11.2006 Firebird 2.0.0 26.09.2007 Firebird 2.0.3 12.12.2007 Firebird 1.5.5 18.04.2008 Firebird 2.1.0 28.04.2008 Firebird 2.0.4

Wo findet man Firebird Das Firebird Projekt Firebird findet man unter http://www.firebirdsql.org/ oder auf Sourceforge http://sourceforge.net/projects/firebird/ Firebird ist FREI Die Lizenz ist die Interbase Public License (IPL, geänderte MPL) Es gibt kein Dual Licensing wie bei MySQL FirebirdSQL Stiftung Die FirebirdSQL Stiftung ist eine Vereinigung von Einzelpersonen und Unternehmen unterschiedlicher Grösse, die darauf abzielt, die kontinuierliche Weiterentwicklung des RDBMS Firebird und der dazugehörigen Produkte zu gewährleisten. Projekte Datenbank Engine JayBird.NET provider ODBC Treiber Python Treiber AddOns (ConfigManager, Control Panel Manager)

Firebird 2.1 UNTERSTÜTZTE PLATTFORMEN Die Firebird Technologie ist seit über 20 Jahren im Einsatz, was es zu einem sehr ausgereiften und stabilen Produkt macht. Unterstützte Plattformen sind: Linux Windows MacOS X Solaris FreeBSD HP Unix Sinixz

Firebird 2.1 CLASSIC SERVER Alle Verbindungen werden in getrennten Prozessen verwaltet Jeder Prozess verwaltet seinen eigenen Datenbank Cache SMP Support Verbraucht allerdings mehr Arbeitsspeicher Local Connections Linux: Die Clients brauchen auch Lese und Schreibrechte auf die Datenbankdatei

Firebird 2.1 SUPER SERVER Multithreaded Server Prozess Verwaltet alle Benutzeranfragen und Verbindungen mittels von einander unabhängigen Threads innerhalb eines Prozesses Kein SMP Support Local Connections Linux: Nur der Server Porzess braucht Lese und Schreibrechte auf die Datenbankdatei

Firebird 2.1 EMBEDDED SERVER Client und Server in einer DLL Exklusiver Zugriff auf die Datenbank Also kein Mehrbenutzermodus Nur lokale Verbindungen Nur für Windows Keine Installation nötig

Firebird 2.1 isql Tools Textbasiertes Interface für Firebird gbak./isql localhost:/opt/employee.fdb user SYSDBA password masterkey DB Backup und DB Restore gfix./gbak b v localhost:/opt/employee.fdb /opt/employee.fbk user SYSDBA password masterkey./gbak r v /opt/employee.fbk localhost:/opt/employee.fdb user SYSDBA password masterkey DB Optimierung oder DB Reparatur./gfix w sync /opt/employee.fdb user SYSDBA password masterkey flamerobin Grafische Administrationsoberfläche http://www.flamerobin.org/

ON DISC STRUCTURE Datenbankdateien mit ODS Version 11.1 Firebird 1.5 DB Dateien haben ODS Version 10.1 Firebird 2.0 DB Dateien haben ODS Version 11.0 Firebird 2.1 DB Dateien haben ODS Version 11.1 Firebird 2.1 kann auch alte DB Dateien lesen, allerdings ist der Funtkionsumfang logischerweise eingeschränkt.

Database Triggers Trigger die an eine Verbindung oder Transaktion gebunden werden können Connect / Disconnect Transaction Start / Commit / Rollback CREATE TRIGGER log ACTIVE on CONNECT AS BEGIN /* enter trigger code here */ SQL and Objects END gbak nodbtriggers isql nodbtriggers

Global Temporary Table Die Metadaten sind immer persistent, die Daten hingegen nicht. Es gibt 2 verschiedene Typen: Daten werden über die Dauer der DB Verbindung behalten CREATE GLOBAL TEMPORARY TABLE temp_table (feld1 Integer) on COMMIT PRESERVE ROWS; Daten werden über die Dauer der Transaktion behalten CREATE GLOBAL TEMPORARY TABLE temp_table (feld1 Integer) on COMMIT Delete ROWS; SQL and Objects

Returning Clause SQL and Objects Gibt die Werte einer INSERT, UPDATE, DELTE oder INSERT OR UPDATE Anweisung an den Client wieder zurück. Kann nur bei singleton Anweisungen durchgeführt werden DELETE from Table1 where Feld1=1 RETURNING Feld2;

Update or Insert SQL and Objects UPDATE und INSERT in einem Befehl UPDATE or INSERT into table1 (Feld1, Feld2) Values (:F1, :F2) MATCHING (Feld1); Ohne MATCHING muss die Tabelle einen primary key haben! UPDATE or INSERT into table1 (Feld1, Feld2) Values (:F1, :F2);

LIST Funktion SQL and Objects Rückgabe der SELECT ist ein String mit allen Werten getrennt durch das angegebene Trennzeichen. Sollte die SELECT keine Werte zurückgeben ist der Rückgabewert NULL. select LIST(ID, ':') from Table1; Ausgabe Wert1:Wert2:Wert3:Wert4

Neue JOIN types SQL and Objects NAMED COLUMNS Ein full join wird erstellt select * from employee join DEPARTMENT using (dept_no); NATURAL JOIN Ein named columns join für alle gleiche Spalten wird erstellt select * from EMPLOYEE_PROJECT natural join EMPLOYEE natural join PROJECT;

SQL and Objects Short Blobs als Long Varchars Text Blobs die nicht grösser als 32.765 byte sind, werden als Varchars behandelt. Es funktionieren also die Funktionen wie CAST, LOWER, UPPER, TRIM und SUBSTRING

LEFT JOIN DEPT_YEAR_BUDGET B_1996 ON D.DEPT_NO = B_1996.DEPT_NO AND B_1996.FISCAL_YEAR = 1996 Neue Features von Firebird 2.1 Common Table Expressions Rekursive DSQL Queries SQL and Objects WITH RECURSIVE DEPT_YEAR_BUDGET AS ( SELECT FISCAL_YEAR, DEPT_NO, SUM(PROJECTED_BUDGET) AS BUDGET FROM PROJ_DEPT_BUDGET GROUP BY FISCAL_YEAR, DEPT_NO ), DEPT_TREE AS ( SELECT DEPT_NO, HEAD_DEPT, DEPARTMENT, CAST('' AS VARCHAR(255)) AS INDENT FROM DEPARTMENT WHERE HEAD_DEPT IS NULL UNION ALL SELECT D.DEPT_NO, D.HEAD_DEPT, D.DEPARTMENT, H.INDENT ' ' FROM DEPARTMENT D JOIN DEPT_TREE H ON D.HEAD_DEPT = H.DEPT_NO ) SELECT D.DEPT_NO, D.INDENT D.DEPARTMENT AS DEPARTMENT, B_1993.BUDGET AS B_1993, B_1994.BUDGET AS B_1994, B_1995.BUDGET AS B_1995, B_1996.BUDGET AS B_1996 FROM DEPT_TREE D LEFT JOIN DEPT_YEAR_BUDGET B_1993 ON D.DEPT_NO = B_1993.DEPT_NO AND B_1993.FISCAL_YEAR = 1993 LEFT JOIN DEPT_YEAR_BUDGET B_1994 ON D.DEPT_NO = B_1994.DEPT_NO AND B_1994.FISCAL_YEAR = 1994 LEFT JOIN DEPT_YEAR_BUDGET B_1995 ON D.DEPT_NO = B_1995.DEPT_NO AND B_1995.FISCAL_YEAR = 1995

Built in Functions Verschiedenste neue und optimierte Built in Functions trunc Trim, rtrim, ltrim rpad, lpad round reverse right, left replace lower, upper decode datediff, dateadd SQL and Objects

PROCEDURAL SQL Domains for defining PSQL Variables and Arguments Es können nun für die Parameter und Variablen auch DOMAINS verwendet werden create domain DOM as INTEGER; create procedure sp (i1 Type of DOM, i2 DOM) returns (o1 type of DOM, o2 DOM) as declare variable v1 type of DOM; declare varianle v2 DOM; begin end /* Prozedurcode */

PROCEDURAL SQL Collate in Stored Procedures and Parameters Es kann nun auf die PSQL Variablen und Parameter eine Collation angewandt werden Enhancement to PSQL error stack trace PSQL error stack trace zeigt nun Zeilen und Spaltennummer an

ADMINISTRATIVE Database Monitoring via SQL Es stehen virtuelle Tabellen zur Verfügung über die man einen Snapshot über den aktuellen Zustand der DB erhält. Die Monitoring Tabellen sind in DSQL und PSQL verfügbar Zeigt mir alle Prozesse an, die CPU Load verursachen: select MON$SERVER_PID from MON$ATTACHMENTS where MON$ATTACHMENT_ID <> CURRENT_CONNECTION and MON$STATE = 1 Übersicht über die DB: select * from MON$DATABASE;

PLATFORM SUPPORT Ports to Windows 2003 64 bit Classic Server Super Server Embedded Server

SECURITY Windows Security to authenticate Users Man kann sich jetzt mit dem Windows Account direkt mit der DB verbinden isql server:employee SQL> select CURRENT_USER from rdb$database; Ausgabe: USER ======== SERVER\Robert

INTERNATIONAL LANGUAGE SUPPORT Unicode Collations anywhere Die UNICODE collations (case sensitive und case insensitive) können für alle CHARACTER SET angewandt werden The CREATE COLLATION command Eigene Collation erstellen CREATE COLLATION UNICODE_ENUS_CI FOR UTF8 FROM UNICODE CASE INSENSITIVE 'LOCALE=en_US';