Serialisierung in DB

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Manü.

    Serialisierung in DB

    Ahoi,

    ich wurde mit einem neuen Projekt betraut, indem ich den Nutzer in einer Webanwendung durch eine Leistungsbeschreibung führen soll ...
    Die Daten die bei der Leistungsbeschreibung enstehen sollen in eine MSSQL DB gespeichert werden. Darin ist u.a. auch eine Beschreibung in Textform enthalten und ich habe mir überlegt den Text Binär serialisiert in die DB zu führen.
    Meine Frage ist welche Vor- und Nachteile dabei entstehen um herauszufinden ob es wirklich Sinn macht den Text in Binärform in der DB zu haben.

    Schonmal im Vorraus vielen dank.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    das WIESO war ja meine frage ;)
    das es datentypen gibt die mit dem text fertig werden ist mir natürlich klar
    mich würde halt interessieren ob es vorteile dem gegenüber gibt zb reduzierung des speicherbedarfs etc...
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Nun das DBMS is da voll lizensiert und soll auch genutzt werden ;)
    es geht natürlich auch zum vorzeigen der ganzen sache und ich dachte mir das da eine serialisierung als
    zusätzliche kleine besonderheit angesehen werden könnte ... natürlich nur wenn man auch erklären kann warum ist dann sinnvoll
    die Anzahl der Datensätze ist dabei erstmal nicht auszumachen und ich finde es für eine deraritge lösung ein wenig
    verschwendung das DBMS nicht zu nutzen und iwo auf den servern xml files rumliegen zu lassen

    außerdem hatte ich mir mit dem post ein wenig mehr erhofft außer "ja sinnvoll" oder "nein schwachsinn" ...
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manü“ ()

    Manü schrieb:

    außerdem hatte ich mir mit dem post ein wenig mehr erhofft außer "ja sinnvoll" oder "nein schwachsinn"

    tutmirleid - die Frage selbst gibt IMO nicht mehr her: Du hast keine Idee, wozu das gut sein könnte, und ich eben auch nicht ;) .

    ein mehr habich ja sogar geliefert - scheint dir aber nicht zuzusagen. Mitte Verschwendung müssteman nochma angucken, ob die 4MB minimale Größe einer SQLServerDB-File Verschwendung sind oder ein mw 50KB herumfliegendes Xml-File.

    Aber wenn du vorweisen mußt - bleib beim SQLServer - das ist konventioneller.

    Achso - und bei mehreren parallelen Usern scheidet das mittm XmlFile klar aus.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    fast richtig ....

    allgemein weiß ich nicht inwiefern es sinnvoll ist binär zu serialisieren
    und ich bin schon der meinug das die frage an sich was hergibt da ich nach vor und nachteilen suche ...
    gröbste nachteil der sache ist natürlich die starke abhängigkeit der assambly der klasse was beim deserialisieren extrem stören könnte ...
    und gerade bei einer multiuser anwendung wie es eine webanwednung im intranet nun mal ist kann ich mir vorstellen das genau
    dieses problem auf mich zukommen könnte ....
    dagegen bringt mir die serialisierung eben genau das was im stream gelandet ist auch wieder her was eine gewisse sicherheit bringen soll ...
    aber in multiuseranw. auch wieder nachteilig sein könnte und da es im intranet angewendet wird ist die sicherheit dahingehend eine sache die relativ ausser acht gelassen werden kann

    um meine frage damit etwas zu konkretisieren:
    - kann die abhängigkeit wirklich zu so einem starken problem werden
    - gibt es weitere nachteile, welche die sache noch unangenehmer machen
    - gibt es vorteile die stark dagegenhalten
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Manü schrieb:

    dagegen bringt mir die serialisierung eben genau das was im stream gelandet ist auch wieder her was eine gewisse sicherheit bringen soll ...

    Also ich gehe davon aus, wenn ich einen UniCode-String (anderes gibts ja nicht im FW) in ein VarChar-Feld einspeicher, dasser dann auch genau so wieder rauskommt - kann ich damit falsch liegen?

    Wennich richtig liege, binnich wieder am Anfang: Ich sehe keine Vorteile vons das.
    eigentlich sollte es wieder so rauskommen die frage hab ich mir halt auch gestellt und bin u.a. deswegen auch darauf gekommen
    diesen post hier zu machen ... es muss doch vorteile der binären serialisierung geben ^^

    ist halt nur die frage ob die binäre serialisierung davor schützt das die daten durch die gleichzeitige bearbeitung mehrere user
    per sql-querys verschandelt werden
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Manü schrieb:

    es muss doch vorteile der binären serialisierung geben

    warum?

    Und warum gäbe es dann den DB-Typ NVarchar?

    Vlt. bedient sich ja sogar das DBMS intern binärer Serialisierung - k.A. - bin froh, dass mich das nicht zu interessieren braucht.

    ist halt nur die frage ob die binäre serialisierung davor schützt das die daten durch die gleichzeitige bearbeitung mehrere user per sql-querys verschandelt werden

    Das hat gar nichts mit Serialisierung zu tun. Dieses Problem nennt sich Parallelitäts-Konflikt.
    Standardmäßig sind die DataAdapter beim typisierten Dataset so konfiguriert, dass sie im Falle von Konflikten eine DBConcurrency-Exception werfen, aber damit ist das Problem nur aufgezeigt - nicht gelöst.

    Eine Standard-Lösung für Parallelitäts-Konflikte gibts nicht - elegant etwa ist, wenn ein User nur seine eigenen Daten zu Gesicht bekommt.

    Dürfen mehrere User an denselben Datensätzen herumfummeln, dann denk dir was aus, was passieren soll, wenn beide verschiedene Änderungen desselben Datensatzes einspeichern wollen.

    Man kann sich auch was ausdenken mit Datensatz sperren, wenn in Bearbeitung durch andere, aber so weit binnichnie fortgeschritten.
    dafür gibt es im sql LOCK damit sperrt man Datensätze für die bearbeitung ...

    aber wie ich sehe gibt es keine begründung das zu nehmen und ich werde die idee erstmal auf eis legen
    aber vielleicht hat ja doch noch jemand eine gute begründung
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de