Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Active Record – Wikipedia
Active Record – Wikipedia 👆 Click Here!
aus Wikipedia, der freien Enzyklopädie

In der Software-Entwicklung ist Active Record ein Entwurfsmuster für objektorientierte Software, die Daten in einer relationalen Datenbank speichert.

Wirkungsweise

[Bearbeiten | Quelltext bearbeiten]
Beispiel für einen Active Record einer Person

Benannt wurde es von Martin Fowler in seinem Buch Patterns of Enterprise Application Architecture[1]. Ein Objekt stellt nach diesem Muster in der Regel Schnittstellen zum Einfügen, Ändern und Löschen bereit. Diese beziehen sich dann direkt auf die zugrundeliegende(n) Tabelle(n).

Active Record ist ein Ansatz, auf Daten zuzugreifen, die in einer Datenbank liegen. Zu einer Datenbanktabelle wird dabei eine entsprechende Klasse erstellt. Ein Objekt, bzw. eine Instanz dieser Klasse entspricht dann einer Zeile in der Tabelle. Das Erzeugen eines neuen Objekts führt demnach zu einer neuen Zeile in der Tabelle. Jedes Objekt, das geladen wird, bezieht seine Informationen aus der Datenbank. Wenn ein Objekt geändert wird, so wird auch die korrespondierende Zeile in der Tabelle geändert. Die Klasse implementiert Zugriffsmethoden für jedes Attribut, bzw. jede Spalte der Tabelle.

Active Record ist somit ein Objekt, das als Adapter (englisch wrapper) zu einer Zeile in einer Datenbanktabelle oder Datenbanksicht (engl. view) dient. Der Adapter beinhaltet hierbei den Datenbankzugriff und Geschäftslogik für die Daten. Es handelt sich im Grunde um ein Row Data Gateway, das um die Geschäftslogik erweitert wird und deshalb sowohl Daten (Eigenschaften) als auch Verhalten (Methoden) implementiert.

Implementierungen

[Bearbeiten | Quelltext bearbeiten]

Es gibt zahlreiche Softwareframeworks, die das Active-Record-Muster implementieren. Wenn es zum Beispiel eine Datenbanktabelle produkte mit den Spalten name und preis gibt, und das Active-Record-Muster als Klasse Produkt implementiert ist, dann erzeugt der folgende Pseudo-Code eine neue Zeile in der Tabelle produkte mit den gegebenen Attributen.

produkt = new Produkt
produkt.name = 'Beispielprodukt'
produkt.preis = 1.99
produkt.save

Das entspricht etwa dem SQL-Befehl:

 INSERT INTO produkte(name, preis) VALUES ('Beispielprodukt', 1.99);

Umgekehrt kann die Klasse Produkt auch verwendet werden, um ein Produkt zu laden:

produkt = Produkt.find_by(name: 'Beispielprodukt')

Das erzeugt ein neues Produkt-Objekt, das dem ersten Produkt aus der produkte-Tabelle entspricht, das den Namen „Beispielprodukt“ hat. Das entsprechende SQL dazu könnte beispielsweise so aussehen:

 SELECT * FROM produkte WHERE name = 'Beispielprodukt' LIMIT 1; -- MySQL oder PostgreSQL

Weblinks

[Bearbeiten | Quelltext bearbeiten]
  • Active Records in Ruby
  • Active Records in PHP
  • Active Records in Python
  • Active Records in .NET
  • AIR Active Record Projekt
  • Dart Active Record Project Dartabase

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Martin Fowler: Patterns of enterprise application architecture. Addison-Wesley, 2003, ISBN 0-321-12742-0 (google.com). 
Entwurfsmuster
V – D
Erzeugungsmuster

Abstrakte Fabrik | Erbauer | Fabrikmethode | Prototyp | Singleton | Multiton | Objektpool

Strukturmuster

Adapter | Brücke | Decorator | Fassade | Fliegengewicht | Kompositum | Stellvertreter

Verhaltensmuster

Beobachter | Besucher | Interpreter | Iterator | Kommando | Memento | Schablonenmethode | Strategie | Vermittler | Zustand | Zuständigkeitskette | Interceptor | Nullobjekt | Protokollstapel

Muster für objekt-
relationale Abbildung

Datentransferobjekt | Table Data Gateway | Row Data Gateway | Active Record | Unit of Work | Identity Map | Lazy Loading | Identity Field | Dependent Mapping | Embedded Value | Serialized LOB | Inheritance Mapper | Metadata Mapping | Query Object | Command-Query-Responsibility-Segregation

Nachrichten-
übermittlungsmuster
Integrationsarten

File Transfer | Shared Database | Remote Procedure Invocation | Messaging

Nachrichtenaufbau

Message | Command Message | Document Message | Event Message | Request-Reply | Return Address | Correlation Identifier | Message Sequence | Message Expiration | Format Indicator

Endpunkte

Message Endpoint | Messaging Gateway | Messaging Mapper | Transactional Client | Polling Consumer | Event-driven Consumer | Competing Consumers | Message Dispatcher | Selective Consumer | Durable Subscriber | Idempotent Receiver | Service Activator

Kanäle

Message Channel | Point-to-Point Channel | Publisher-Subscriber Channel | Datatype Channel | Invalid Message Channel | Dead Letter Channel | Guaranteed Delivery | Channel Adapter | Messaging Bridge | Message Bus

Nachrichtenvermittlung

Pipes-and-Filters | Message Router | Content-based Router | Message Filter | Dynamic Router | Recipient List | Splitter | Aggregator | Resequencer | Composed Message Processor | Scatter-Gather | Routing Slip | Process Manager | Message Broker

Nachrichtenumwandlung

Message Translator | Envelope Wrapper | Content Enricher | Content Filter | Claim Check | Normalizer | Canonical Data Model

Systemmanagement

Control Bus | Detour | Wire Tap | Message History | Message Store | Smart Proxy | Test Message | Channel Purger

andere

Application Controller | Business Delegate | Data Access Object | Dependency Injection | Extension Interface | Fluent Interface | Inversion of Control (IoC) | Lock | Model View Controller (MVC) | Model View Presenter (MVP) | Model View Update (MVU) | Model View ViewModel (MVVM) | Page Controller | Registry | Remote Facade | Repository | Service Locator | Session State | Table Module | Template View | Threadpool | Transaction Script | Transform View | Two-Step View | Value Object

Siehe auch:  Analysemuster | Architekturmuster | Integrationsmuster | SOA-Muster
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Active_Record&oldid=255844160“
Kategorie:
  • Softwarearchitektur

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id