• Keine Ergebnisse gefunden

Verarbeitung großer

N/A
N/A
Protected

Academic year: 2022

Aktie "Verarbeitung großer"

Copied!
16
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Lisa Leuschner

Speicherung und Verarbeitung großer

Objekte

(2)

1.

Allgemein – Was sind LOBs

2.

Typen von LOBs

1. Interne

2. Externe

3.

Speicherung von LOBs

1. Tabellenzellen

2. Tabellenzeilen

3. Temporär / Persistent

4.

Besonderheiten und Einschränkungen

5.

Zugriff auf LOBs

12.07.2015

Lisa Leuschner 2

Gliederung

(3)

LOB – Large Object

Datentypen die eine große Menge Daten halten sollen

Geeignet für Daten die nicht direkt vom DBMS interpretiert werden können :

Semi-Strukturierte Daten

Logisch strukturiert

Bspw. XML

unstrukturierte Daten

Logisch nicht weiter unterteilbar

Bspw. Bilder

12.07.2015

Lisa Leuschner 3

Was sind LOBs

(4)

12.07.2015

Lisa Leuschner 4

Interne Typen von LOBs

BLOB – Binary Large Object

Daten im Binärformat

Bspw. : Bilder, Audio

CLOB – Character Large Object

Zeichenketten mit einheitlichen Zeichensatz

Bspw. lange Zeichenketten/ XML Dokumente

NCLOB – National Character Set Large Object

Äquivalent zu CLOB mit dem National Character Set

(5)

12.07.2015

Lisa Leuschner 5

Externe Typen von LOBs

BFILE – External Binary File

Binärdatei außerhalb der eigentlichen Datenbank

Nur Lesend verfügbar

Bspw. für statische Daten, wie Bilder welche nicht manipuliert werden

(6)

12.07.2015

Lisa Leuschner 6

Verwendung von LOBs für andere Datentypen

VARRAY

Array von LOBs

XMLType

XMLType Datentyp wird als CLOB Datentyp gespeichert

Ermöglicht Speicherung Schemaloser XML Dokumente

Oracle interMedia

Nutzung für Datentypen ORDAudio, ORDDoc usw.

(7)

Zelleninhalt der Tabelle = LOB Instanz

Instanz hat einen Locator(Zeiger) und einen Wert (eigentliches Objekt)

3 mögliche Zellenzustände

NULL (kein Wert/ Locator)

Empty (Kein Wert)

Populated

12.07.2015

Lisa Leuschner 7

Speicherung von LOBs

(8)

Unterschiede der Speicherung je nach Typ

Intern (BLOB, CLOB, NCLOB)

Zelle speichert Locator zum wert

Locator und Wert eindeutig

Extern (BFILE)

Zelle speichert Zeiger zur Datei

Zeiger eindeutig, aber es kann auf die selbe Datei mehrmals verwiesen werden

12.07.2015

Lisa Leuschner 8

Speicherung von LOBs

(9)

In-line

Speicherung in der Tabellenzeile

Wenn LOB Wert NULL

Out-of-Line

Speicherung außerhalb der Zeile

Default Einstellung

Ab Größe von 3964 b

12.07.2015

Lisa Leuschner 9

Speicherung von LOBs

(10)

LOB kann temporär oder persistent sein

Persistent

Ist in einer Tabelle gespeichert (ACID gilt)

Temporär

Nur im Kontext der aktuellen Anwendung verfügbar

Wird persistent wenn es in der Datenbank gespeichert wird

12.07.2015

Lisa Leuschner 10

Speicherung von LOBs

(11)

Lobs können

keine Primärspalten sein

nicht in der Order by / Group by Klausel stehen

nicht in SELECT Distinct oder SELECT Unique Queries genutzt werden

12.07.2015

Lisa Leuschner 11

Regeln und Einschränkungen

(12)

Öffnen und Schließen von LOBs

Read Only Mode

Locator & Wert können nicht vor Schließen der Instanz geändert werden

Read/ Write mode (BLOB, CLOB, NCLOB)

Verschiebt Index Verwaltung der Lob Spalte bis zum Schließen der Instanz

12.07.2015

Lisa Leuschner 12

Zugriff auf LOBs

(13)

Einfache Anwendung wie bei üblichen Datentypen :

CLOB/NCLOB CHAR, VARCHAR2, LONG

BLOB RAW, LONG RAW

Bspw. Erstellung :

CREATE TABLE media (

media_id NUMBER(6), photo BLOB

);

12.07.2015

Lisa Leuschner 13

Zugriff mittels SQL

(14)

Bsp. Einfügen / Abfragen :

INSERT INTO media (media_id, photo) VALUES(1, 0x322e..);

SELECT photo FROM media WHERE media_ID = 1;

Einschränkungen

Maximal zugreifbare Datengröße begrenzt auf Buffer Größe (32767 Bytes)

4000 Byte Limit für Results in SQL

12.07.2015

Lisa Leuschner 14

Zugriff mittels SQL

(15)

Beispiel JDBC :

//CLOB erstellen

Clob myClob = this.con.createClob();

//Schreibe Stream von Chars in das Clob Objekt

Writer clobWriter = myClob.setCharacterStream(1);

String str = this.readFile(fileName, clobWriter);

//Füge in Tabelle ein

String sql = "INSERT INTO COFFEE_DESCRIPTIONS " + "VALUES(?,?)";

pstmt = this.con.prepareStatement(sql);

pstmt.setString(1, coffeeName);

pstmt.setClob(2, myClob);

pstmt.executeUpdate();

12.07.2015

Lisa Leuschner 15

Zugriff mittels API

(16)

12.07.2015

Lisa Leuschner 16

Quellen

http://docs.oracle.com/cd/B19306_01/appd ev.102/b14249/toc.htm

https://docs.oracle.com/javase/tutorial/jdb

c/basics/gettingstarted.html

Referenzen

ÄHNLICHE DOKUMENTE

Most microprocessor architecture does not require a common input port select at the card level, so generally the cornmon input port is tied to ground (the

Den motivierenden Einstieg in das Doppelthema "Märchen" und "Europäische Union" kann die Lehrkraft über die Frage nach den in der Klasse gelesenen Märchen und

Franz Kohnle Seite 1 von

Raphaela Etzold: Gleichberechtigung in erster Instanz — 2019/3/6 — Seite III — le-tex..

[r]

Die Auswirkungen des Klimawandels auf die zukünftige Schneedeckendauer und -ausdehnung wurde im Rahmen des ACRP-Projekts CC-Snow (CC-Snow, 2013 a, b) exemplarisch für die

Da es derzeit keine gesicherten Aussagen über eine Zunahme von Starkregenereignissen gibt (vgl. BMLFUW, 2011), kann auch keine Aussage über eine eventuelle Zunahme

Innerhalb der intakten Blockgletscher kann zwischen aktiven (verbreiteter Permafrost und rezente Bewegung) sowie inaktiven (verbreiteter Permafrost jedoch ohne rezente