Wat is precies een datamodel? Ik weet wat een erd is, ik weet wat een datadictionary is, ik weet wat een domain model in UML is, maar is een datamodel een heel specifiek model/schema of meer een algemeen begrip?
Web definitions for Data Model
A data model is the structure in which a computer program stores persistent information. In a relational database, data models are built from tables. Within a table, information is stored in homogeneous columns, e.g., a column named registration_date would contain information only of type date. A data model is interesting because it shows what kinds of information a computer application can process. For example, if there is no place in the data model for the program to store the IP address from which content was posted, the publisher will never be able to automatically delete all content that came from the IP address of a spammer.
"Beauty is the ultimate defence against complexity." David Gelernter
Volgens mij is een data model een domain model van het data domain.Alarmnummer schreef op 10 september 2004 @ 11:31:
Wat is precies een datamodel? Ik weet wat een erd is, ik weet wat een datadictionary is, ik weet wat een domain model in UML is, maar is een datamodel een heel specifiek model/schema of meer een algemeen begrip?
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Ik zou het min of meer omschrijven zoals de quote van Macros:
Het is een algemene term, en het beschrijft de structuur van hoe je data opgeslagen wordt (persistent dus).
In een RDBMS is je ERD je data-model, in een flat-file omgeving is dat je files en hun record-layout.
Het is een algemene term, en het beschrijft de structuur van hoe je data opgeslagen wordt (persistent dus).
In een RDBMS is je ERD je data-model, in een flat-file omgeving is dat je files en hun record-layout.
https://fgheysels.github.io/
klinkt als een beroepsspecifieke competentie!
Een andere term is 'relational model'.
Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com
Volgens mij is 'relationeel model' (we kunnen ook gewoon bij het nederlands blijvenEfBe schreef op 10 september 2004 @ 12:27:
Een andere term is 'relational model'.
Ik heb het even op wikipedia opgezocht (I love wikipedia) :
A data model is a model that describes in an abstract way how data is represented
in an information system or a database. In general it describes the following aspects:
Structure: defines what the structure of the representation is. This should not only
specify how data is represented but also how a schema can be specified that
defines the structure of the data in a specific user domain.
Integrity: provides a language for the definition of rules that restrict which
instances of the defined structure are allowed.
Manipulation: provides a language in which updates of the data can be expressed.
Querying: provides a language in which the data can be queried.
An example is the relational model in which all data is represented by mathematical
relations (or, to be precise, a slightly generalized version thereof). It furthermore
defines a set of specific constraints (candidate keys, foreign keys) and a general
language for specifying constraints (first-order logic), and for manipulations and
querying the data the relational algebra, tuple calculus and domain calculus are introduced.
Other examples are the Functional Data Model, the Entity-Relationship Model and
the Object Role Model although these usually only describe a small subset of the
aspects described above.
Retrieved from "http://en.wikipedia.org/wiki/Data_model"
[ Voor 5% gewijzigd door RealCato op 10-09-2004 12:33 ]
Rijtjeshuis 170 m^2 uit 1955, bij renovatie in 2022 dak/vloer/spouwisolatie, overal HR++, vvw benedenverdieping, 7x Jaga Strada en 2 handdoekradiatoren met Tado’s. Quatt hybrid op dakkapel sinds einde 2023.
Naar mijn idee is een datamodel een enigzins formele specificatie van de manier waarop informatie opgeslagen en opgevraagd wordt. Je moet het naar mijn idee echt als specificatie kunnen gebruiken: op basis van het datamodel moet je een applicatie kunnen schrijven die met de betreffende informatie werkt, zonder hier verdere ontwerpkeuzes voor te hoeven maken.
Een complete ERD (liefst met specificatie van de gebruikte datatypen) kan dus het datamodel van een traditionele applicatie op basis van een RDBMS beschrijven. Voor andere applicaties beschrijf je bijvoorbeeld de inhoud van data files en queues. Het datamodel is wat mij betreft dus vooral een begrip: wat toereikend is als specificatie verschilt per situatie en het hoeft dus niet altijd om een ERD, domain model, of whatever te gaan. Als je een specificatie hebt opgesteld waarin vastligt hoe gegevens opgeslagen en opgehaald worden, dan heb je dus een data model gemaakt.
Merk op dat wat mij betreft een datamodel niets hoeft te zeggen over de verwerking van informatie. Het gaat alleen om de structuur waarin de gegevens opgeslagen worden en de eventuele interpretatie die er aan gegeven moet worden.
Een complete ERD (liefst met specificatie van de gebruikte datatypen) kan dus het datamodel van een traditionele applicatie op basis van een RDBMS beschrijven. Voor andere applicaties beschrijf je bijvoorbeeld de inhoud van data files en queues. Het datamodel is wat mij betreft dus vooral een begrip: wat toereikend is als specificatie verschilt per situatie en het hoeft dus niet altijd om een ERD, domain model, of whatever te gaan. Als je een specificatie hebt opgesteld waarin vastligt hoe gegevens opgeslagen en opgehaald worden, dan heb je dus een data model gemaakt.
Merk op dat wat mij betreft een datamodel niets hoeft te zeggen over de verwerking van informatie. Het gaat alleen om de structuur waarin de gegevens opgeslagen worden en de eventuele interpretatie die er aan gegeven moet worden.
Het datamodel is dus een iets algemener concept dan bv een ERD. Ok.. thanx allemaal.
Vergeef mijn layout verneuking maar ik denk dat dit wel verhelderend is voor ts:
Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum
Mja, het is dan maar net wat voor definitie je hanteert natuurlijk (en dat zijn discussies die zonde zijn van de tijd).RealCato schreef op 10 september 2004 @ 12:31:
[...]
Volgens mij is 'relationeel model' (we kunnen ook gewoon bij het nederlands blijven) geen synoniem voor 'data model', maar een subcategorie... Volgens mij zijn object georienteerde modellen ook data modellen, maar geen relationele modellen
Object georienteerde modellen zijn IMHO geen datamodellen want datamodellen suggereert een model voor data, terwijl object georienteerde modellen data + behavior modelleren.
Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com
Dit lijkt me niet echt verhelderend, wat wil je nu zeggen? Dat een datamodel er als een half brak uml model uitziet ofzo?Bor_de_Wollef schreef op 10 september 2004 @ 15:18:
Vergeef mijn layout verneuking maar ik denk dat dit wel verhelderend is voor ts:
[afbeelding]
Nou, daar ben ik het niet helemaal mee eens, maar zoals je al zegt: zonde van de tijdEfBe schreef op 10 september 2004 @ 16:27:
[...]
Mja, het is dan maar net wat voor definitie je hanteert natuurlijk (en dat zijn discussies die zonde zijn van de tijd).
Object georienteerde modellen zijn IMHO geen datamodellen want datamodellen suggereert een model voor data, terwijl object georienteerde modellen data + behavior modelleren.
Maar de andere kant op dan: kan een datamodel ook hierarchisch zijn? (retorische vraag). Dus ik ben ook van mening dat een relationeel model een subset is (wel de meest voorkomende en misschien in de praktijk wel een de-facto standaard) van een datamodel.
Mee eens.EfBe schreef op 10 september 2004 @ 16:27:
Object georienteerde modellen zijn IMHO geen datamodellen want datamodellen suggereert een model voor data, terwijl object georienteerde modellen data + behavior modelleren.
Ook mee eens.CubicQ schreef op 10 september 2004 @ 20:21:
Maar de andere kant op dan: kan een datamodel ook hierarchisch zijn? (retorische vraag). Dus ik ben ook van mening dat een relationeel model een subset is (wel de meest voorkomende en misschien in de praktijk wel een de-facto standaard) van een datamodel.
Simpel gezegd: beschrijving van de structuur hoe de data is opgeslagen. Soort UML model voor de database.
in mijn optiek gaat het iets verder dan alleen beschrijven van de structuur van dataopslag. Ook zaken als waar de zwaarste queries komen te liggen (ivm performance) indexen, index hints, fysieke structuur van je datafiles etc. dienen er in te zitten.
Egoist: A person of low taste, more interested in themselves than in me
Maar het is niet een specifieke 'notatie'.CK schreef op 10 september 2004 @ 20:34:
Simpel gezegd: beschrijving van de structuur hoe de data is opgeslagen. Soort UML model voor de database.
Bij een ERD weet je heel duidelijk wat je krijgt. Bij een UML domein model weet je heel duidelijk wat je krijgt. Bij een data dictionary weet je heel duidelijk wat je krijgt. Je krijgt min of meer formeel omschreven diagrammen, notaties..
Wat ik dus wou weten is of datamodel ook zo`n formeel omschreven diagram, notatie is. Niet dat ik met een ERD kom aanzetten terwijl een datamodel bedoelt wordt. Datamodel is dus meer een algemeen begrep en een ERD kan dus gebruikt worden om een datamodel in uit te drukken.
Indices, hints en fysieke structuur zijn toch ook onderdeel van de structuur?
Ik ben trouwens met je eens dat dat er ook in hoort (indien dit van belang is voor de applicatie).
Ik ben trouwens met je eens dat dat er ook in hoort (indien dit van belang is voor de applicatie).
Dat hangt van de mate van abstractie af. Met indices kan je o.a. de toegang tot de records versnellen, waarmee het eigenlijk een stukje van het gedrag ondersteund en aanduidt hoe je vaak bij de records wilt kunnen komen.Soultaker schreef op 11 september 2004 @ 15:58:
Indices, hints en fysieke structuur zijn toch ook onderdeel van de structuur?
Anderzijds is een unique constraint weer wel iets dat de data beschrijft, namelijk dat een specifiek veld uniek is in de tabel. Echter een "unique index" is dan weer dubieus, want de index wordt voor de constraint gebruikt (en al het andere waar je indices voor gebruikt natuurlijk).
Ik zou het af laten hangen van hoe abstract je model moet zijn. Bij een model dat dicht bij de implementatie zit is het zeker van belang, maar bij een model dat alleen maar globaal aangeeft hoe de data gestructureerd is niet.Ik ben trouwens met je eens dat dat er ook in hoort (indien dit van belang is voor de applicatie).
Maar wat is dan een domain model en een data domain?farlane schreef op 10 september 2004 @ 12:09:
Volgens mij is een data model een domain model van het data domain.
Bij een NIAM model weet je semantisch wat je krijgt, maar niet hoe dat fysiek eruit ziet (i.e. hoe het ERD eruit ziet).Alarmnummer schreef op 11 september 2004 @ 15:45:
[...]
Maar het is niet een specifieke 'notatie'.
Bij een ERD weet je heel duidelijk wat je krijgt. Bij een UML domein model weet je heel duidelijk wat je krijgt. Bij een data dictionary weet je heel duidelijk wat je krijgt. Je krijgt min of meer formeel omschreven diagrammen, notaties..
Ik denk dat je deze discussie beter met degene die jou heeft gevraagd een datamodel te leveren kunt houden. Immers, wij kunnen hier allemaal het over een bepaalde definitie eens zijn, maar als jouw opdrachtgever daar anders over denkt, kom je in zijn/haar ogen wel met een ander model aan dan verwacht. Juist dat 'verwachte model' is belangrijker dan welke definitie dan ook.Wat ik dus wou weten is of datamodel ook zo`n formeel omschreven diagram, notatie is. Niet dat ik met een ERD kom aanzetten terwijl een datamodel bedoelt wordt. Datamodel is dus meer een algemeen begrep en een ERD kan dus gebruikt worden om een datamodel in uit te drukken.
Wellicht weer wat pragmatisch gedacht, maar er wordt in de IT al door veel te veel mensen veel en veel teveel tijd verkwanseld door het oeverloos zeuren over definities terwijl geen hond geinteresseerd is noch iets kan met de uitkomst van die zeursessies, oh pardon, discussies
Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com
Een index is een database engine hulpje en niet meer dan dat. Een unique constraint niet. Sommigen denken met een unique index snel klaar te zijn, maar echt correct is dat IMHO niet.ACM schreef op 11 september 2004 @ 16:23:
Anderzijds is een unique constraint weer wel iets dat de data beschrijft, namelijk dat een specifiek veld uniek is in de tabel. Echter een "unique index" is dan weer dubieus, want de index wordt voor de constraint gebruikt (en al het andere waar je indices voor gebruikt natuurlijk).
Ik krijg trouwens wel wat van de vaagheid van deze thread. De topicstarter mag van mij wel wat duidelijker zijn wat hij nu werkelijk wil bereiken. Oeverloos debatteren over een niet-bestaande term (nl. 'datamodel' riekt naar een combinatie tussen relationeel model en data-structuur, iets soortgelijks als 'overnieuw', dat ook niet bestaat maar een samentrekking is tussen opnieuw en over doen) is leuk voor mensen met absoluut niets om handen, maar dient eigenlijk nergens toe.
Ik zie dat de term 'domain model' al gevallen is. Nu maar hopen dat er niet een NT4 MCSE-er meeleest die die term gaat uitleggen
[ Voor 3% gewijzigd door EfBe op 11-09-2004 17:16 ]
Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com
Je bent niet de enigste.EfBe schreef op 11 september 2004 @ 17:15:
Ik krijg trouwens wel wat van de vaagheid van deze thread.
Ik hoef geen discussie. Ik wou alleen weten wat een datamodel nu wel en niet is.De topicstarter mag van mij wel wat duidelijker zijn wat hij nu werkelijk wil bereiken.
Verder is mij gevraag of ik wist wat een datamodel was.
Pagina: 1