home.social

#datamodel — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #datamodel, aggregated by home.social.

fetched live
  1. “Status” columns in Oracle

    I wrote this blog post a while ago, and I’ve just spotted it in the backlog drafts, so I though it might be time to publish it. This may be old news to many of you, but I sometimes work on systems where consideration for how to store STATUS columns (or more accurately, columns with low cardinality / few values) at the design stage would have saved an awful lot of problems.

    In the scenario where you are recording the status of an action within an Oracle table, there are many ways to accomplish it. However, some ways are better than others.

    Let us say that we have 2 statuses; “NOT YET PROCESSED” and “COMPLETE”.

    Let us also assume a 1,000,000,000 rows table for sizing purposes, with 1,000 rows “NOT YET PROCESSED” and all of the rest set to “COMPLETE”.

    We could store and index these in several different ways:

    Storing a descriptive status

     CREATE TABLE STATUS_TAB  (prim_key NUMBER,   otherdata VARCHAR2, etc...   STATUS VARCHAR2(20) NOT NULL ); 

    We could store the values as they are represented above. Very descriptive, but it will waste a lot of space.
    Storing the word “COMPLETE” one billion times will take about 7.5 GB.

    There’s also no guarantee that you will have good data integrity – the data is not being validated against a STATUS_DESCRIPTION, so we should also have CHECK constraint to ensure only the values we want to have in the table are there.

    Using a number to represent the staus

     CREATE TABLE STATUS_TAB   (prim_key number,   otherdata VARCHAR2, etc...   STATUS number NOT NULL); 

    In this scenario, a 0 would represent “NOT YET PROCESSED” and a 1 would represent “COMPLETE”. Much better, but changing status from 0 to 1 will increase the size of your row by 1 byte.

    “0” takes 1 byte to store in Oracle.
    “1” takes 2 bytes to store.

    You could cause some possible row migrations, and increase your storage requirement from 1GB to 2 GB for this column.

    We would need a small second table STATUS_DESCRIPTION with a foreign key relationship, to explain the status and keep everything nice and relational with good data integrity.

    Using a single character for the status

     CREATE TABLE STATUS_TAB   (prim_key number,   otherdata VARCHAR2, etc...   STATUS varchar2(1) NOT NULL); 

    Now, an “N” would represent “NOT YET PROCESSED” and a “C” would represent “COMPLETE”. Even better, now it’s just 1 byte to store your character, regardless of status. You still need 1 GB to store this data though.

    We would need a small second table STATUS_DESCRIPTION as before.

    Histograms: assuming you wish to query via the status, we need to allow Oracle to create a frequency Histogram on the indexed column in all scenario’s above, the optimizer would understand that there are very few values for the “not yet processed” status and many for “complete”, meaning that the index could be used when querying for the rare values. Without the histogram, the index is unlikely to be used for any value as Oracle would assume a 50/50 split between the 2 values and 500,000,000 single block lookups from the index isn’t going to be a selected access path.

    Using NULL to represent COMPLETE

     CREATE TABLE STATUS_TAB   (prim_key number,    otherdata VARCHAR2, etc...   STATUS varchar2(1) ) ; 

    Now, an “O” would represent “NOT YET PROCESSED” and “NULL” would represent “COMPLETE”. Now it’s just 1 byte to store your character before you process the data and NO bytes to store it when you are complete, assuming there are no columns in the table following the STATUs column. Oracle does not store NULLs at the end of a table if they are not there.

    Better still, because NULL’s are not stored within B-Tree indexes within Oracle, and I suspect the query “show me what I need to process” is a lot more common than “show me what I have processed”, putting an index on a 1,000,000,000 row table with 1,000 unprocessed rows will result in an index containing 1000 bytes (plus 10 byte rowid per entry, plus block overhead).

    That’s not a very big index – a couple of blocks for a potentially huge table and would be extremely quick to read. When querying for a value which is not NULL, the index would be very useful.

    We would need a small second table STATUS_DESCRIPTION as before.

    Using BOOLEAN type

     CREATE TABLE STATUS_TAB   (prim_key number,    otherdata VARCHAR2, etc...   STATUS BOOLEAN ) ; 

    If you ony have 2 status levels, and will definitely not have more than 2, you could use the BOOLEAN type to store the status. This gives a TRUE or FALSE option but, and this is important in this context, a BOOLEAN takles 1 bytes to store and still has a length byte so it’s no more efficient from a storage perspective, and somewhat less flexible.

    Caveat: All sizes are very approximate and don’t account for block overhead, length byte per column and – in an index – the storage of the ROWID, which takes 10 bytes per entry.

    #ai #data #dataModel #database #design #flag #lowCardinality #model #null #oracle #sql #status #technology
  2. Teams grow, datasets evolve, and business requirements shift—so do your Microsoft Fabric data models. Ignoring governance is a recipe for drift. Learn why every great data story starts with governance at the core.

    Read more 👉 lttr.ai/AtM5F

    #M365ShowPodcast #DataModel #M365Show

  3. #rdf #linkeddata #LOD #datamodel
    {3/n} But I really want something in the specs that states this requirement in a more hard and fast way and I'm not finding it. For example, RDF 1.1 Concepts and Abstract Syntax > 3.1 Triples doesn't come out and provide any req's for the predicate other than that it is an IRI.
    I thought that perhaps The RDF Concepts Vocabulary (RDF namespace) properties for reifying triples might help, but -- to my surprise -- rdf:predicate has rdfs:range rdfs:Resource -- I expected this to be rdf:Property.
    Thus, I'm not currently coming up with anything from the specs (thus, looking for wisdom -- entirely possible and in fact dependable that I am missing things), but rather, only what seems like convention.


  4. {2/n} I mean, I might explain this in a very non-technical way, like,
    When you publish an RDF metadata description set you are creating a model with the triples. You are asserting that the subject of each triple has the attribute value of or relationship with the object.
    If the predicate of the triple isn't something modelled in a way that makes this connection, it won't work well for various reasons (users likely won't query using predicates that aren't instances of rdf:Property or some subclass of that, would be the most important I think.)

  5. #rdf #linkeddata #LOD #datamodel

    { 1/n } Reviewing an RDF metadata application profile, came across an IRI used as a predicate in metadata description set triples, looked at modelling from the source:

    ```Turtle
    <ebu.ch/metadata/ontologies/ebu> a rdfs:Class ;
    rdfs:label "Content alert"@en ;
    rdfs:comment "To provide information about a particular type of content potentially sensitive."@en ;
    rdfs:subClassOf <ebu.ch/metadata/ontologies/ebu> .
    ```

    Said something like "Oh, well, that's a class, we can't use that as a property, we'll want to change that."
    Was asked the question "Why can't we use that IRI as a property?"
    The fact that you can't use a resource that is an instance of rdfs:Class as a predicate in an RDF triple -- or, at least, you shouldn't -- seemed self-evident to me. But I found I was somewhat at a loss to come up with what I consider a solid response about why this is the case based in RDF specs.
    Thus, here I am looking for wisdom on the internet.
    To say a bit more...

  6. If you’re trusting your data in Microsoft Fabric to stay accurate just because you set it up perfectly the first time, you could be in for a rude awakening. Data model drift is a silent disruptor—find out what you can do today to prevent tomorrow’s problems.

    Read more 👉 lttr.ai/ArXwo

    #M365ShowPodcast #DataModel #M365Show

  7. Microsoft Fabric Governance Explained: Why Your Data Model Will Drift. If you think frequent versioning, undocumented changes, and growing datasets won’t impact your model, think again—governance is not a ‘nice to have’, it’s a must for data integrity.

    Read more 👉 lttr.ai/ApJ80

    #M365ShowPodcast #DataModel #M365Show

  8. I've been working on data models for #Wikidata type specimen items & structured data for #WikimediaCommons specimen images. This is part of my Wikimedian in Residence & is a collaboration with Brodie Satherley from Auckland Museum.
    See wikidata.org/wiki/Wikidata:Wik
    #NaturalHistory #TypeSpecimen #DataModel #StructuredDataCommons

  9. Data models don’t stay static in Microsoft Fabric—no matter how careful you are! Dive into the hidden causes of drift and find out how governance can protect your business from the risks lurking beneath your dashboards.

    Read more 👉 lttr.ai/An1ng

    #M365ShowPodcast #DataModel #M365Show

  10. Is your Microsoft Fabric reporting starting to look ‘off’? Here’s why: without proper governance, data models naturally drift—impacting everything from insights to compliance. Swipe through our top reasons and solutions for stopping data chaos before it starts!

    Read more 👉 lttr.ai/An1Nq

    #M365ShowPodcast #DataModel #M365Show

  11. Ever wonder why your Microsoft Fabric data always seems a little off after a while? Data model drift is real—and governs everything from analytics to compliance. Uncover the overlooked factors behind model drift and learn how robust governance can set your data straight.

    Read more 👉 lttr.ai/AnzGz

    #M365ShowPodcast #DataModel #M365Show

  12. Microsoft Fabric Governance Explained: Why Your Data Model Will Drift: lttr.ai/AnsYm

    #M365ShowPodcast #DataModel #M365Show

  13. #SIEM #security #logs #blue , I would rather threat hunt but here we are. Does it make sense to catalog all log sources and have an example for each one? #knowyourdata right? When is too much documentation too much ? It makes sense to me I guess to catalog all sources than document where the logs would go in a #datamodel and how to query them.

  14. Microsoft Fabric Governance Explained: Why Your Data Model Will Drift.

    Read the full article: Microsoft Fabric Governance Explained: Why Your Data Model Will Drift
    ▸ lttr.ai/AnN9x

    #M365ShowPodcast #DataModel #M365Show

  15. 🚀 Breaking News: Matt Brown discovers that your destiny is not in the stars, but in your data model! 🌌 Apparently, #startups should prioritize abstract concepts because, clearly, the gravitational pull of "core abstractions" will save them from a black hole of irrelevant features. 🎩✨
    notes.mtb.xyz/p/your-data-mode #BreakingNews #DataModel #CoreAbstractions #Innovation #HackerNews #ngated

  16. I look forward to the Autum School "Modern Stained Glass - Metadata - AI" in Münster next week 😊. This is a chance to present what we are doing in @nfdi4objects in the field of #materialheritage and what is the #ObjectBiography. This is a great chance to show the #datamodel based on the #NFDI4ObjectsObjectOntology my colleague Sarah Wagner at #CDI @FAU implemented in the #VRU #WissKI.
    I look forward to the discussions and to receive feedback + needs from the #community for our developments.
    1/2

  17. Sehr interessante Keynote von Clarisse Bardiot beim #DraCorSummit u.a. zu Ontologies für Performing Arts. Hab da gerade einiges neues gelernt und werd mir das ein oder andere mal genauer anschauen.

    Z.B. linked.art
    #DataModel #ontology #PerformingArts #InformationScience

  18. Ah, another riveting 2000-word #manifesto on creating the perfect tool to think about thinking 🤔🛠️! Because, clearly, scientists have been struggling all this time without the magical musings of Jon Sterling 🌟✨. Who knew the real barrier to scientific progress was the lack of a proper "information data model"? 🙄📊
    forester-notes.org/tfmt-0001/i #scientificthought #thinkingtools #datamodel #JonSterling #HackerNews #ngated

  19. I wonder if a publicly available datamodel for project management solutions exists

    it's be so useful 😕

    #datamodel
    #datamodeling

  20. Here are the slides (in german) from the #GND-Forum "NFDI, FID & Co" about the #researchdata in @nfdi4objects. They include an overview about the #heterogenous data of our consortium, the usage of #terminologies and our work to #harmonize the #archaelogical and #object data to make them #fair, such as the development of a #minimumdata recommendation and a #cidoccrm based #datamodel for the #objectbiography. zenodo.org/records/14359746
    #nfdirocks #nfdi #authorityfiles #vocabularies #LIDO

  21. Tools or applications meant/marketed by their developers to manage bookmarks and other items but fall apart with mid 5 digit number of entries indicates that data model used has significant problems and that the developer doesn't have the knowledge to handle data well.
    If the tools primary purpose is to handle data, that's not a good sign…
    #Software #DataModel

  22. Anyone familiar with CIDOC CRM? How does one link a E31 Document (e.g. drawing, photograph) with a E36 Visual item (i.e. digital file)?

    #LinkedData #DataModel #CIDOC

  23. Today I tried to schedule a bloodwork appointment that required fasting for 12 hours. I aimed for the earliest slot possible. Booking it was much harder than it needed to be.

    Your #datamodel shouldn’t dictate your #userinterface.

    joecotellese.com/posts/data-mo

    #productmanagement

  24. Blog post about a new #nodegoat feature: Data Publication Module. Publish any project as a standalone data publication which hosts both the data model and all of its data:

    nodegoat.net/blog.s/74/new-dat

    #opendata #openscience #zenodo #digitalhistory #histodons #DigitalHumanities #datapublication #datamodel @histodons

  25. Session 8a of #dhbenelux2024 covers the disambiguation and annotation of historical #text, addressing many challenges which we also faced in our #DigiKar project. The first group of presenters talk about their #datamodel for person reconstructions. #dhbenelux24 @DigiKAR

  26. IZO (Informatievoorziening (langdurige) Zorg en Ondersteuning)

    De IZO-community is er voor iedereen die werkt aan digitale gegevensuitwisseling en databeschikbaarheid in de langdurige zorg en ondersteuning.

    Bij IZO komen partijen, professionals en programma’s digitaal en fysiek bij elkaar om informeel kennis en ervaringen uit te wisselen over ontwikkelingen richting een duurzaam informatiestelsel in de zorg en ondersteuning. IZO bevordert daarmee de samenhang in de digitale gegevensuitwisseling in de langdurige zorg en ondersteuning. Zodat cliënten en mantelzorgers meer regie ervaren, zorgprofessionals beter worden ondersteund in de zorgverlening, en inkopers, beleidsmakers, toezichthouders, onderzoekers en systeempartijen kunnen werken met betrouwbare en herbruikbare data. IZO verbindt, informeert en inspireert over digitale gegevensuitwisseling.

    Er zijn veel partijen in de langdurige zorg en ondersteuning, die vaak aan dezelfde oplossingen werken. IZO is opgericht als plek om elkaar te informeren, inspireren en af te stemmen over de informatievoorziening.
    Maandelijks zitten de deelnemende partijen bij Platform IZO informeel met elkaar om tafel om overzicht en samenhang tussen de initiatieven in informatievoorziening te creëren. De leden zijn de schakel tussen IZO en hun achterban.
    IZO bewerkstelligt de bevordering van de samenhang door een goed netwerk te organiseren tussen de betrokken partijen.

    IZO is een samenwerking van ActiZ, BIDN, CAK, CIBG, CIZ, Jeugdzorg Nederland, Ketenbureau i-Sociaal Domein, de Nederlandse ggz, NZa, Nictiz, OIZ, Valente, VECOZO, VGN, VNG, V&VN, Ministerie van VWS, ZN, Zorginstituut Nederland en Zorgthuisnl.

    #actieprogramma #administratie #bemiddelingsregister #berichtenverkeer #cliëntdossier #cliëntendossier #community #databeschikbaarheid #datamodel #denktank #domeinoverstijgend #domeinoverstijgende #ECD #eOverdracht #framework #functies #gegevens #gegevensuitwisseling #generieke #indicatieregister #informatielandschap #informatiestelsel #informatievoorziening #infrastructuur #Innovatie #interoperabiliteit #istandaarden #IV #iwlz #IZO #kennisjam #KIKV #lagenmodel #langdurig #langdurige #modernisering #nationaleVisie #netwerkmodel #netwerkperspectief #ondersteuning #platform #platformIZO #samenhang #sociaalDomein #toekomstbeeld #vijflagenmodel #VWS #wlz #wmo #Zorg #zorginformatie #ZorginstituutNederland
  27. @drandrewv2 Also: it should never be an “either/or” choice when looking across the DMBOK domains. Do do one we’ll inevitably requires others to be in play (try #DataGovernance without a conceptual #DataModel or #MetaData)

  28. RT @Joinup_eu: The Core Public Event Vocabulary aspires to become a common #DataModel for describing #PublicEvents 🎫 in the European Union, like:
    -Conferences
    -Summits
    ℹ️ Check out its draft version (1.0.0) & stay tuned for the final one!
    👉joinup.ec.europa.eu/collection
    @INSPIRE_EU @EU_opendata t.co/AurCBrpdkZ

    🐦🔗: n.respublicae.eu/EULawDataPubs

  29. I am begging you.
    Stop trying to do BI (or purchase a BI tool!) without an understanding of your #datastructute or #datamodel

Share on Mastodon

Enter the server where you have an account.