众所周知是什么生肖| 莞字五行属什么| 梦见穿新衣服是什么意思| 梨和什么一起榨汁好喝| 荤段子是什么意思| 睡觉做梦多是什么原因| 抑郁症去医院挂什么科| 福建岩茶属于什么茶| 气溶胶是什么| 马齿苋治什么病| 梦见吃排骨是什么意思| 碧文圆顶是什么意思| 射精是什么感觉| 武汉有什么好吃的| 九华山在什么地方| 梦见猫是什么意思| 病理单克隆抗体检测是什么| 什么的野鸡| 中考送什么礼物| 茶叶蛋用什么茶叶最好| 孕妇梦见自己出轨是什么意思| 呲牙咧嘴是什么意思| wing什么意思| 吃西兰花有什么好处| 氯硝西泮片是什么药| 咳血是什么原因引起的| 什么水果对皮肤好祛痘| 无穷大是什么意思| 家家酒是什么意思| 梳子断了有什么预兆| 罗贯中和施耐庵是什么关系| 净空是什么意思| 清创是什么意思| 金字旁的字与什么有关| 不解什么| 菠菜不能和什么食物一起吃| nb是什么品牌| 婴儿呛奶是什么原因引起的| 蜂蜡有什么用| 我是什么星座| 拉墨绿色的大便是什么原因| 康康是什么意思| casio是什么牌子| 痨病是什么病| 什么情况下需要做心脏造影| 干事是什么级别| 毛鸡蛋是什么| 中古包是什么意思| 为什么闭眼单脚站不稳| 脑垂体在什么位置图片| 体育精神是什么| 疯狂动物城狐狸叫什么| 冰箱什么牌子最好| 不置可否什么意思| 点了斑不能吃什么| 抽烟手抖是什么原因| 腔隙性脑梗死吃什么药| 碘酒和碘伏有什么区别| 萨满教供奉什么神| 佛口蛇心是什么生肖| 绿豆长什么样| 据悉是什么意思| 蚊子爱咬什么样的人| 拔完牙不能吃什么| dna是什么意思| 中药吃多了对人体有什么伤害| 掉头发什么原因| 下巴底下长痘痘是什么原因| vca是什么牌子| 母亲节要送什么礼物| 午餐吃什么好又能减肥| 阅历是什么意思| 膝超伸是什么| 切屏是什么意思| 候场是什么意思| 什么是卵巢囊肿| 足字旁的字与什么有关| 身体铅超标有什么危害| 纳财适合做什么| 常委是什么级别| 折射率是什么意思| 甲功三项是检查什么| 笑是什么意思| 嵌顿是什么意思| moose是什么意思| 晨起嘴苦是什么原因| 乙肝通过什么途径传染| 嘴唇起泡是什么原因引起的| 聊胜于无的聊是什么意思| 维生素b9是什么| 夹腿综合症是什么| 放屁特别臭是什么原因| 留个念想是什么意思| 狮子座与什么星座最配| 佳偶天成是什么意思| 寒湿吃什么药| 什么发育成种皮| 闷骚男是什么意思| 什么是hpv病毒| 快餐是什么意思| 梦见死了人是什么征兆| 微针是什么| 想飞上天和太阳肩并肩是什么歌| 心脏右束支传导阻滞是什么意思| 阴毛是什么| 三省吾身是什么意思| 脚底发烫是什么原因| 异常子宫出血是什么原因| 继续近义词是什么| 蒋介石为什么不杀张学良| 修女是干什么的| 什么是泡沫尿| 口引念什么| 肌酸激酶偏低是什么原因| 素心是什么意思| 盆腔炎是什么引起的| 1963年五行属什么| 胰腺炎不能吃什么| 鸡蛋加什么吃壮阳持久| 思钱想厚什么意思| 平安夜什么时候吃苹果| 四个月念什么字| 男女双修是什么意思| 指甲很薄很软是为什么| 腰肌劳损用什么药最好| 扁桃体发炎吃什么药比较好| 胸口闷堵是什么原因| 妈妈是什么意思| 胃酸的主要成分是什么| 学籍卡是什么样子图片| 父亲b型血母亲o型血孩子什么血型| 车万是什么意思| 蛋白粉什么时候喝效果最好| 元朝是什么民族| 火龙果和什么不能一起吃| 夏季有什么花| 乙肝三抗体阳性是什么意思| 痛风能吃什么| 什么的杜鹃花| 松香对人体有什么危害| 女性阴道痒是什么原因| 弱肉强食什么意思| 宰相相当于现在的什么官| 手上三条线分别代表什么| 孕激素高是什么原因| 小白鼠吃什么| 硬气是什么意思| 双甘油脂肪酸酯是什么| 男人腿毛多代表什么| 肛门瘙痒是什么原因| 满日是什么意思| 珩五行属什么| 小猫的耳朵像什么| 什么是大男子主义| atp是什么意思| b型和ab型生的孩子是什么血型| 附带是什么意思| 回迁房是什么意思| 协警是干什么的| 羊肉什么季节吃最好| 八月17号是什么星座的| 烊什么意思| 执念什么意思| 妙赞是什么意思| 村书记是什么级别| 百香果有什么功效与作用| 尿频吃什么药效果最好| 猫咪发烧吃什么药| 血糖高的人适合吃什么水果| 面红耳赤是什么生肖| 晨勃消失是什么原因| 心结是什么意思| 女生取什么名字好听| 什么是网球肘| 不要问为什么| 水土不服是什么意思| 痘痘破了涂什么药膏| 吃什么促进恶露排干净| 有什么菜好吃| 煦字五行属什么| 大学211和985是什么意思| 奶绿是什么| 剁椒鱼头是什么菜系| 冰箱买什么牌子的好| 佰草集属于什么档次| 舌头有问题看什么科| 低血压高吃什么药| 膀胱炎是什么症状表现| 肠梗阻是什么原因引起的| 葡萄糖高是什么原因| 低热吃什么药| 贴图是什么意思| 膀胱过度活动症吃什么药| 糖尿病可以喝什么饮料| 男人第一次什么 感觉| 孕妇梦见小蛇是什么意思| 五月是什么星座| 属龙跟什么属相最配| 什么的风雨| 鼻涕粘稠是什么原因| 20度穿什么衣服合适| 属牛的本命佛是什么佛| 宽宽的什么填空| 吃什么健脾胃除湿气| 脑血栓前兆是什么症状表现| 天蝎座是什么星象| 安道尔微信暗示什么| 决定的近义词是什么| 胰岛素有什么副作用| 平均血小板体积偏高是什么意思| 月经量多是什么原因引起的| 红斑是什么皮肤病| 虬结什么意思| 什么是类风湿性关节炎| 门槛是什么意思| 句加一笔是什么字| 塞屁股的退烧药叫什么| grace什么意思中文| 女人喝什么茶最好| 缺钾会出现什么症状| 阴唇肿是什么原因| 番茄和蕃茄有什么区别| 淋是什么意思| 检查是否怀孕挂什么科| 眼睛上火用什么眼药水| 我行我素的人什么性格| 梦到吃梨是什么意思| 绿茶婊什么意思| 路上行人匆匆过是什么歌| 雨字头的字有什么| 朔望月是什么意思| 痘痘肌肤适合用什么牌子的护肤品| 土龙是什么鱼| 心脏杂音是什么意思| 什么像什么似的造句| 毛囊炎是什么症状| 你喜欢我什么| 颈椎病最怕干什么活| 蕈是什么意思| 什么的烤鸭| 规培证什么时候发| 人工念什么字| 淋巴细胞偏高说明什么问题| 阁老是什么意思| 使用年限是什么意思| 移植后宫缩是什么感觉| 吃什么能瘦| pvd是什么意思| 今天开什么码| 打喷嚏流清鼻涕是什么感冒| 豌豆炒什么好吃| 孙子兵法到底说什么| brown什么意思| 3朵玫瑰代表什么意思| 华是什么意思| 梦见自己的手机丢了是什么意思| 夏天适合吃什么菜| 儿童细菌感染吃什么药| 苍蝇最怕什么| 肠衣是什么做的| 血管瘤吃什么药| 意识是什么意思| 妈妈吃什么帮宝宝排气| 为什么没有西京| 百度Vai al contenuto

传媒高考事——重点、难点突破课程(播音主持专业)

Da Wikipedia, l'enciclopedia libera.
In una base di dati relazionale i dati sono organizzati in relazioni, ovvero collezioni di tuple di valori correlati che rappresentano un'entità del mondo reale. Relazioni diverse possono essere associate individuando valori "chiave" in comune. Le relazioni possono essere visualizzate sotto forma di tabelle.
百度 垂询是什么意思

In informatica il modello relazionale è un modello matematico che offre gli strumenti concettuali per strutturare una base di dati in termini di valori atomici e relazioni tra di essi.

Proposto da Edgar F. Codd nel 1970 per semplificare la scrittura di interrogazioni sui database e per favorire l'indipendenza dei dati, venne reso disponibile come modello logico in DBMS reali nel 1981 e ad oggi è uno dei modelli logici più utilizzati, implementato su moltissimi DBMS sia commerciali che open source. Si basa sulla teoria degli insiemi e sulla logica del primo ordine, strutturato intorno al concetto matematico di relazione e per il suo trattamento ci si avvale di strumenti quali il calcolo relazionale e l'algebra relazionale.[1]

Edgar F. Codd lavorava nella sede californiana di IBM come ricercatore sulla nascente tecnologia dei dischi rigidi quando osservò l'inefficienza dell'approccio CODASYL con la nuova modalità di memorizzazione dei dati, inefficienza principalmente dovuta all'assenza di una funzione di ricerca. Nel 1970 cominciò a produrre diversi documenti schematizzanti un nuovo approccio alla costruzione delle basi di dati, culminati nell'articolo "A Relational Model of Data for Large Shared Data Banks" (lett. "Un modello relazionale dei dati per banche dati condivise di grandi dimensioni" in italiano).[2]

In questo articolo descrisse un nuovo sistema per archiviare e modificare grandi quantità di dati. Invece di utilizzare sequenze di record collegati tra loro attraverso un qualche tipo di struttura ad albero, come nel modello CODASYL, ritenne di utilizzare collezioni di tuple di dimensione fissata, chiamate "relazioni".

Questo sistema sarebbe risultato molto inefficiente per l'archiviazione di dati sparsi, ovvero nel caso di tuple che presentano sistematicamente diversi campi vuoti; tale errore di impostazione fu corretto spostando i campi opzionali in collezioni separate, in modo da produrre insiemi più compatti, risparmiando spazio.

Ad esempio, un utilizzo comune delle banche dati è quello di registrare delle informazioni sugli utenti: il loro nome, informazioni di accesso, indirizzo e numeri di telefono. In una banca dati navigazionale tutti questi dati sarebbero stati memorizzati in un unico "record", e gli elementi non presenti (ad esempio un utente di cui non sia noto l'indirizzo) sarebbero stati semplicemente omessi. Al contrario, in una banca dati relazionale, le informazioni vengono divise, ad esempio, nelle tabelle "utente", "indirizzi", "numeri di telefono" e solo se i dati sono presenti viene creata, nella rispettiva tabella, una tupla.

Uno degli aspetti interessanti introdotti nelle banche dati relazionali sta nel collegamento delle tuple attraverso i valori: nel modello relazionale per ogni relazione viene definita una "chiave", ovvero un campo (o insieme di campi) che assume un valore univoco per ogni tupla, fungendo da identificatore. La chiave può essere ricavata direttamente dai dati memorizzati (ad esempio, in un database di cittadini italiani si potrebbe utilizzare il codice fiscale di ognuno), o aggiunta in maniera artificiale (ad esempio aggiungendo un campo ID numerico, generato sequenzialmente per ogni tupla).

Questa operazione di "riunificazione" dei dati non è prevista nei linguaggi di programmazione tradizionali: mentre l'approccio navigazionale richiede semplicemente di "ciclare" per raccogliere i diversi "record", l'approccio relazionale richiede al programma di "ciclare" per raccogliere le informazioni riguardanti ogni record.[non chiaro] Codd, propose, come soluzione, la creazione di un linguaggio dedicato a questo problema. Tale linguaggio, più tardi, si è sviluppato nella codifica che oggi è universalmente adottata e che è il mattone fondamentale delle basi di dati: SQL.

Utilizzando una branca della matematica chiamata "calcolo delle tuple", dimostrò che questo sistema era in grado di compiere tutte le normali operazioni di amministrazione delle banche dati e che inoltre consentiva di disporre di uno strumento semplice per trovare e visualizzare gruppi di dati tramite un'unica operazione.

Implementazione

[modifica | modifica wikitesto]

IBM cominciò a implementare questa teoria in alcuni prototipi all'inizio degli anni settanta, come nel "System R". La prima versione fu realizzata nel 1974/75 con uno strumento "monotabella"; negli anni successivi furono studiati i primi sistemi che potessero supportare la suddivisione dei dati in tabelle separate. Versioni "multiutente" furono realizzate nel 1978 e nel 1979; negli stessi anni fu standardizzato il linguaggio SQL. La superiorità di questo sistema rispetto a CODASYL fu quindi evidente e IBM passò a sviluppare una versione commerciale di System R, che prese il nome di "SQL/DS" prima e "DB2" infine.[3]

Il lavoro di Codd venne proseguito presso l'Università di Berkeley da Eugene Wong e Michael Stonebraker. Il loro progetto, chiamato INGRES e finanziato con fondi destinati alla creazione di un database geografico, vide la luce nel 1973 e produsse i primi risultati nel 1974 anche grazie all'opera di numerosi studenti che si prestarono come programmatori (quasi 30 persone lavorarono al progetto). INGRES era assai simile a System R e prevedeva un linguaggio alternativo a SQL, chiamato QUEL.[4]

Molte delle persone coinvolte nel progetto si convinsero della fattibilità commerciale dello stesso e fondarono imprese per entrare nel mercato con questo prodotto. Sybase, Informix, NonStop SQL e alla fine Ingres stessa nacquero quali spin-off per la diffusione di INGRES all'inizio degli anni ottanta. Perfino Microsoft SQL Server è, per certi versi, una derivazione di Sybase e quindi di INGRES. Solamente la Oracle di Larry Ellison partì utilizzando un approccio diverso, basato sul System R di IBM, e alla fine prevalse sulle altre compagnie con il suo prodotto, lanciato nel 1978.[5]

In Svezia il lavoro di Codd venne sviluppato all'Università di Uppsala che sviluppò un diverso prodotto, "Mimer SQL", commercializzato nel 1984. Una particolarità di questa soluzione sta nell'introduzione del concetto di transazione, successivamente importata in quasi tutti i DBMS.[6]

Esempio di tabella di un RDBMS ovvero secondo il modello relazionale (Docenti e loro corsi). Visibile in alto in grigio l'intestazione o testata della tabella con i nomi dei vari campi o attributi e i valori assunti da questi nelle rispettive righe, record o tuple nel corpo sottostante (è presente un record duplicato).

L'assunto fondamentale del modello relazionale è che tutti i dati sono rappresentati come relazioni e manipolati con gli operatori dell'algebra relazionale o del calcolo relazionale, da cui appunto il nome.

Il modello relazionale consente al progettista di database di creare una rappresentazione consistente e logica dell'informazione. La consistenza è ottenuta inserendo nel progetto del database appropriati vincoli. La teoria comprende anche un processo di normalizzazione in base al quale viene selezionato tra le diverse alternative lo schema maggiormente "desiderabile".

La struttura base del modello relazionale è composta da:

  • uno o più attributi o campi dato;
  • un tipo di dato ed un dominio su quel tipo, definito come l'insieme dei valori che può assumere un determinato attributo o campo dato;
  • un valore per ciascun attributo all'interno del dominio o tipo di dato consentito;
  • una tupla, record o riga cioè l'insieme non ordinato di valori assunti dagli attributi.

La testata della relazione è l'insieme di attributi o campi dato, mentre il corpo è l'insieme di n tuple o record di dati o valori. La testata di una relazione è anche la testata di ciascuna delle sue tuple. La tabella è invece la rappresentazione grafica normalmente accettata per rappresentare la relazione tra attributi e valori.

Il principio base del modello relazionale è dunque che tutte le informazioni siano rappresentate da valori inseriti in relazioni (tabelle); dunque, un database relazionale è un insieme di relazioni contenenti valori e il risultato di qualunque interrogazione (o manipolazione) dei dati può essere rappresentato anch'esso da relazioni (tabelle).

Il modello relazionale risponde al requisito dell'indipendenza dei dati e prevede una distinzione tra il livello fisico e il livello logico: questa capacità di astrazione ha fatto la sua fortuna nel mondo della gestione dati.

Applicazione ai database

[modifica | modifica wikitesto]
Esempio di relazione tra più tabelle. Due tabelle secondarie, attraverso le rispettive foreign key, puntano ovvero sono referenziate ad una tabella primaria che contiene un campo comune tra le tre detta chiave primaria (nell'esempio il campo Activity Code)

"Tabella" è il termine normalmente usato in sostituzione del termine teorico "relazione" per indicare l'insieme delle righe e delle colonne della matrice di dati. La struttura di una tabella è specificata da una lista di colonne, ciascuna delle quali ha un nome univoco (l'attributo o campo dato), un tipo di dato e un dominio, cioè un insieme di valori accettati (valori univoci non ripetuti se è una chiave primaria, oppure valori ripetibili; fra questi il valore NULL se l'attributo non è obbligatorio).

"Attributo" o campo dato è il termine usato per indicare l'intestazione iniziale di una colonna; ad esso si associa un certo tipo di dato con il suo dominio di possibili valori. Il tipo di dato usato nei database relazionali può essere un insieme di numeri interi, un insieme di caratteri alfanumerici, l'insieme delle date, i valori booleani vero e falso ecc... I corrispondenti "nomi di tipo", ad esempio, saranno dunque le stringhe "int", "char", "date", "boolean", etc. Da sottolineare che, da una parte, la teoria relazionale non definisce quali tipi vadano supportati, e dall'altra molti sistemi garantiscono la possibilità di definire tipi di dati definiti dall'utente cioè personalizzati, in aggiunta a quelli "standard" forniti dal sistema.

Valore di attributo è il dato o valore di una cella identificata da una specifica coppia riga - colonna, come ad esempio "Mario Rossi" o "2006", mentre una tupla è praticamente la stessa cosa di una riga o record di dati o valori.

Una relazione è dunque la definizione di una tabella, cioè un insieme di colonne e righe, cioè attributi o campi dato insieme ai rispettivi dati o valori che vi compaiono. La definizione della tabella è la testata iniziale e i dati che vi appaiono sono il corpo cioè un insieme di righe.

In tale ambito, il termine relazione a volte si riferisce anche alle relazioni o vincoli interrelazionali che intercorrono tra una tabella primaria (master) ed altre tabelle secondarie (slave) attraverso l'associazione tra una chiave primaria della tabella principale e le foreign key delle altre tabelle.

Le operazioni tipiche basilari che saranno possibili su una tabella precedentemente definita e creata nella sua struttura tramite il Data Definition Language (DDL) sono quelle cosiddette di CRUD ovvero C creazione (create) o inserimento dei record (insert), R lettura (read), U aggiornamento (update), D cancellazione (delete), attraverso il Data Query Language e il Data Manipulation Language (DML) del linguaggio standard SQL. Altre operazioni tipiche sono la definizione delle chiavi (primarie o esterne) sulle tabelle definite ed altre ancora sono definite nel linguaggio Data Control Language e nello stesso Data Definition Language.

Vincoli di integrità referenziale

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Vincolo di integrità.

I vincoli di integrità rappresentano una classe di proprietà che dovrebbero essere sempre soddisfatte dalle istanze della base di dati, pena la perdita dei dati conservati o la comparsa di errori di elaborazione. La verifica e la preservazione di questi vincoli rientra nei compiti dei sistemi di gestione delle basi di dati.

Dal punto di vista formale un vincolo è un predicato sulla base di dati o di un suo elemento. Valutando il predicato è possibile rilevare se la base di dati soddisfa o meno un dato vincolo. In generale a uno schema di base di dati si associa un insieme di vincoli e si considerano corrette solo le istanze che soddisfano tutti i vincoli specificati.

Esistono due grandi tipologie di vincoli: quelli intra-relazionali che interessano una sola relazione e quelli inter-relazionali o extra-relazionali che definiscono legami tra relazioni differenti.

Altri modelli

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Base di dati § Secondo il modello dei dati.

Prima dell'avvento del modello relazionale, le basi di dati venivano progettate seguendo principalmente due modelli: quello gerarchico e quello reticolare. Sebbene oggi la maggioranza dei DBMS supporti il modello relazionale, in alcuni centri elaborazione dati sono ancora utilizzati database gerarchici o reticolari, specialmente in casi in cui la migrazione avrebbe costi proibitivi.

Secondo alcuni autori[Quali?] il modello relazionale potrebbe in futuro cedere il passo a un modello orientato agli oggetti, ma da una parte i DBMS ad oggetti stentano ad affermarsi, dall'altra i migliori DBMS relazionali stanno rilasciando funzionalità object-oriented, come la possibilità di definire tipi di dato "utente"[non chiaro].

  1. ^ Atzeni 2018, p. 15.
  2. ^ Codd 1970.
  3. ^ Breve storia dei database relazionali, su ibm.com. URL consultato il 18 marzo 2024.
  4. ^ (EN) Michael Stonebraker e Lawrence A. Rowe, The design of POSTGRES (PDF), in SIGMOD '86: Proceedings of the 1986 ACM SIGMOD international conference on Management of data, Washington, DC, Association for Computing Machinery, maggio 1986, p. 4, DOI:10.1145/16894, ISBN 0897911911.
  5. ^ (EN) Brief History of Oracle Database, su docs.oracle.com. URL consultato il 18 marzo 2024.
  6. ^ (EN) Database Technology | We made it possible, su wemadeitpossible.com, Università di Uppsala, gennaio 2011. URL consultato il 18 marzo 2024 (archiviato dall'url originale il 25 aprile 2018).

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
什么是胸推 梦见大蜘蛛是什么预兆 牙齿发软是什么原因 微创是什么 草单斤是什么字
一碗香是什么菜 月经期间适合吃什么水果 吃什么补肾 石灰的主要成分是什么 什么都值得买
白衬衫配什么裤子好看 什么是垃圾食品 小麦淀粉是什么 大拇指发麻是什么原因 脑供血不足是什么原因
旅游需要带什么东西 89岁属什么生肖 喰种是什么意思 蒸鱼豉油什么时候放 螺蛳粉为什么臭
慢性胰腺炎吃什么药效果最好hcv9jop7ns5r.cn 清江鱼是什么鱼hcv8jop9ns8r.cn 什么是低密度脂蛋白胆固醇hcv8jop9ns3r.cn 用什么药可以缩阴紧致hcv8jop5ns9r.cn 异麦芽酮糖醇是什么hcv7jop6ns7r.cn
七月上旬是什么时候wzqsfys.com 水漫金山是什么生肖hcv8jop8ns9r.cn 舌苔腻是什么意思hcv8jop9ns7r.cn 蜻蜓属于什么类动物hcv9jop7ns5r.cn 子宫内膜息肉有什么症状hcv7jop6ns9r.cn
什么样的人不适合吃人参hcv7jop6ns0r.cn 乌龟王八甲鱼鳖有什么区别hcv9jop3ns5r.cn 食伤泄秀是什么意思hcv8jop1ns2r.cn 途径是什么意思hcv9jop4ns6r.cn 化疗期间不能吃什么hcv9jop1ns2r.cn
丙肝抗体阳性是什么意思呢hcv8jop3ns6r.cn 感冒吃什么药好得快chuanglingweilai.com homie什么意思hcv9jop4ns7r.cn 阴性和阳性是什么意思gangsutong.com 梦见水代表什么hcv8jop5ns2r.cn
百度