#noindex Sub: [[스키마schema]] [[데이터data]] [[데이터언어,data_language]] [[DDL,data_definition_language]] 데이터정의어 - CREATE TABLE, DROP TABLE, ALTER, RENAME, TRUNCATE, ... [[DML,data_manipulation_language]] 데이터조작어 - INSERT INTO, UPDATE, DELETE FROM, ... [[DCL,data_control_language]] [[WpKo:데이터_제어_언어]] 데이터제어어 - GRANT, REVOKE, ROLLBACK, .. TCL,transaction_control_language 트랜잭션제어어? - COMMIT, ROLLBACK, SAVEPOINT, ... // 위의 언어(~L) 분류들은 엄밀하지는 않은 것 같다. SQL의 SELECT를 DQL - Data Query Language 로 따로 분류한 곳도 있고 [[SQL,structured_query_language]] [[데이터모델data_model]] 계층형 관계형데이터모델 or 관계데이터모델 - RDM, relational_data_model - 가장 중요 etc. [[데이터추상화data_abstraction]] - curr see [[데이터모델data_model]]맨아래 [[연산operation]] [[관계데이터연산relationship_data_operation]] [[관계대수relational_algebra]] - 절차식 언어(procedural) normal set operations : union intersection set_difference Cartesian_product pure relational operations : select project join division [[조인join]] [[관계해석relational_calculus]] - 비절차식 언어(non-procedural) domain relational calculus tuple relational calculus[* https://chartworld.tistory.com/12 fig. 1] [[DBMS,database_management_system]] -> [[VG:데이터베이스,database#s-3]] hierarchical_database https://foldoc.org/hierarchical+database network_database https://foldoc.org/network+database relational_database https://foldoc.org/relational+database [[WpKo:관계형_데이터베이스]] [[WpEn:Relational_database]] intelligent_database https://foldoc.org/intelligent+database flat_file_database [[WpKo:플랫_파일_데이터베이스]] [[WpEn:Flat-file_database]] [[뷰view]] [[키key]] [[수퍼키super_key]] [[후보키candidate_key]] [[기본키primary_key]] [[대체키alternate_key]] [[외래키foreign_key]] [[무결성integrity]] [[무결성제약조건integrity_constraint]] [[개체무결성제약조건entity_integrity_constraint]] [[참조무결성제약조건referential_integrity_constraint]] Srch:referential_integrity http://databaser.net/moniwiki/wiki.php/참조무결성규칙 [[테이블table]] ''relation ≠ relationship. 처음에 이것 때문에 혼동.'' [[릴레이션relation]] [[관계relationship]] [[relvar]] { //wpen 1995년 paper ''The Third Manifesto''에서 Date와 Darwen이 소개. [[릴레이션relation]]과의 혼동을 피하기 위한 용어라는데, chk [[Wiki:RelVar]] = http://wiki.c2.com/?RelVar [[WpEn:Relvar]] [[WpEn:Relation_(database)#Relation_variables]] Google:Relvar } [[개체entity]] [[튜플tuple]] { [[릴레이션relation]]의 행에 해당. [[table]]의 열은 [[속성attribute]], 행은 '''tuple'''. 비관계 파일에서의 [[레코드record]]와 같은 의미. 관계 데이터 모델에서 [[relation]]의 한 행. [[릴레이션relation]]에서, '''튜플tuple'''은[* http://www.kocw.net/home/cview.do?cid=fc3d162212c224f5 변시우 4-3 22m] * [[테이블table]]의 각 [[행row]]. * 현실 세계의 [[개체entity]]를 표현. * 각 속성값(attribute value, [[속성attribute]] [[값value]])들의 조합으로 구성. ex. 학생 릴레이션에서, 한 튜플은, 학생 개체 한 명의 정보를 표현. 릴레이션에서, 튜플의 유일성(uniqueness of tuple):[* http://www.kocw.net/home/cview.do?cid=fc3d162212c224f5 변시우 5-1 15m] 릴레이션은 튜플들의 [[VG:집합,set]]이기 때문에, 모든 튜플은 서로 달라야 함. 릴레이션에서, 튜플의 무순서성(no ordering of tuple):[* 변시우 5-1 17:20] 릴레이션의 튜플 사이에 순서는 의미가 없음. ''(집합은 그 원소들 사이에 순서가 없음)'' 다시 말해, 튜플 순서만 다른 두 릴레이션이 있다면, 같은 릴레이션임. ---- [[HashKr:튜플]] } [[필드field]] { 행렬 terminology로는 열,column에 해당됨. (열column ~= '''필드field''' ~= [[속성attribute]]) Opp, 대비되는 개념: [[레코드record]] [[HashKr:필드_(데이터베이스)]] - SQL문 ALTER TABLE 설명함. } [[레코드record]] [[도메인domain]] { 하나의 [[속성attribute]]이 가질 수 있는 값들의 집합. 각 속성에 입력 가능한 값들의 범위. 각 속성이 취할 수 있는 모든 값들의 집합을 정의한 것. A set of atomic(indivisible) values. Data type is used for domain specification. Data_type보다 더 구체적이고 작은 범위로 축소할 수가 있다. 그래서 database에서는 data type이라고 안 하고 domain이라는 용어를 따로 쓴다.[* KU황인준 2022-04-04 07:20] ex. 성별 속성의 도메인은 ‘남’ 또는 ‘여’. 학년 속성의 도메인은 (4년제 학교) {1, 2, 3, 4}. ''그러니 아마 PL의 type과 비슷?'' } [[속성attribute]] [[차수degree]] { 하나의 [[릴레이션relation]]에서 [[속성attribute]]의 전체 개수. 즉 [[table]]에서 열의 수와 같음. [[카디널리티cardinality]]와 달리 변화하는 일이 적음. 카디널리티와의 비교: * [[카디널리티cardinality]] : [[릴레이션relation]] 안의 전체 [[튜플tuple]]의 개수, 입력/수정/삭제 등을 통해 계속 변화함 - 동적 * '''차수degree''' : [[릴레이션relation]]을 구성하는 전체 [[속성attribute]]의 개수 - 정적 } [[카디널리티cardinality]] { 하나의 [[릴레이션relation]]에서 [[튜플tuple]]의 전체 개수. [[튜플tuple]]의 수. 즉 [[차수degree]]와 달리 자주 변할 수 있음. 동적. (삽입 시 +1, 삭제 시 -1) 차수와의 비교: * '''카디널리티cardinality''' : [[릴레이션relation]] 안의 전체 [[튜플tuple]]의 개수, 입력/수정/삭제 등을 통해 계속 변화함 - 동적 * [[차수degree]] : [[릴레이션relation]]을 구성하는 전체 [[속성attribute]]의 개수 - 정적 } [[널null]] [[질의query]] [[정규화normalization]] esp database_normalization [[정규형normal_form]] [[이상anomaly]] [[삽입이상insertion_anomaly]] [[갱신이상update_anomaly]] [[삭제이상deletion_anomaly]] [[함수적종속성functional_dependency]] { aka 함수적종속?? X→Y X: 결정자determinant, Y: 종속자dependent X가 Y를 함수적으로 결정. Y가 X에 함수적으로 종속되어 있음. [[부분함수적종속성partial_functional_dependency]] [[완전함수적종속성full_functional_dependency]] - 일반적으로 함수적 종속성은 완전함수종속성을 의미. links ko https://yaboong.github.io/database/2018/03/09/database-anomaly-and-functional-dependency/ https://dotheright.tistory.com/107 에서 2. (저 글쓴이도 공부중...) mklink: [[이상anomaly]]? [[정규화normalization]] [[정규형normal_form]] Twins: http://foldoc.org/functional+dependency [[https://itwiki.kr/w/함수적_종속성]] ---- Up: [[database]] } [[데이터독립성data_independency]] { [[데이터data]]의 논리적 or 물리적 구조가 변경되더라도, 응용프로그램이 직접 영향을 받지 않는 특성. * 응용프로그램에 영향을 주지 않으면서 DB구조 변경을 가능하게 함. * (반대로) DB에 영향을 주지 않으면서 응용프로그램을 수정할 수 있게 함. 각 단계 [[스키마schema]] 사이에 적절한 내부 사상을 한다면, 하위스키마가 변경되어도 상위스키마에 영향을 주지 않도록, 변경 내용을 숨길 수 있음. 외부 - 개념 사상 외부스키마를 변경해도 전체 개념적 스키마는 변경되지 않거나 변경되더라도 변경 내용이 최소화. 논리적 데이터 독립성 logical data independence 제공 개념 - 내부 사상 물리적 구조의 변경에 따른 내부 스키마가 수정되더라도 연관된 개념-내부 사상 정보만 수정하면 상위 스키마에 대한 영향을 최소화. 물리적 데이터 독립성 physical data independence 제공 [* http://www.kocw.net/home/cview.do?cid=fc3d162212c224f5 변시우 4-2 15m~] } [[원자값atomic_value]] { 더 이상 분해할 수 없는 [[VG:값,value]] [[VG:원자,atom]] } E-R * , ER_model , ER_diagram , ... { 개체-관계 모델링(Entity-Relationship Modelling E-R model 개체-관계 다이어그램(Entity-Relationship Diagram)이라 한다. 줄여서 ERD E-R diagram [[WpKo:개체-관계_모델]] 개체-관계 모델(E-R model) : 현실 세계를 [[개체entity]]와 개체 간의 [[관계relationship]]를 이용해 개념적 구조로 표현하는 방법. 개체-관계 다이어그램(E-R diagram, Entity-Relationship diagram, E-R 다이어그램) : 현실 세계를 개체-관계 모델을 이용해 개념적으로 모델링하여 그림으로 표현한 것[* https://terms.naver.com/entry.naver?docId=3431115&ref=y&cid=58430&categoryId=58430] ||[[개체entity]] ||사각형 || ||개체 간 [[관계relationship]] ||마름모 || ||개체나 관계의 [[속성attribute]] ||타원 || ||각 요소를 연결하는 ||링크(연결선) || [* https://terms.naver.com/entry.naver?docId=3431127&cid=58430&categoryId=58430&expCategoryId=58430] bmks en Introduction of ER Model https://www.geeksforgeeks.org/introduction-of-er-model/ er diagram의 기호들 설명. } [[관계형데이터베이스relational_database]] // pagename 뒤에 RDB 추가? { '''RDB''' DB중 relational database가 인기있다. spreadsheet 비슷하다. 하나 이상의 [[테이블table]] 또는 [[릴레이션relation]]으로 정리한다. [[행row]], [[열column]]이 있다. row - 행, 로우. [[레코드record]]나 [[튜플tuple]]로도 부른다. [[고유키primary_key]]가 각 row를 식별한다. i.e. 각 row마다 그것만의 고유 [[키key]]가 있다. 한 [[테이블table]] 안의 row는 다른 테이블들의 row로 연결이 가능. (tbw [[외래키foreign_key]]와의 관계 정확히 서술...) column - 컬럼, [[속성attribute]], 필드field [[관계형모델relational_model]] { Edgar Codd에 의해 제안, [[VG:술어논리,predicate_logic]]([[VG:일차논리,first-order_logic]])와 [[집합론,set_theory]]에 기반 https://foldoc.org/relational+data+model [[WpKo:관계형_모델]] [[WpSimple:Relational_model]] [[WpEn:Relational_model]] .. Up: [[데이터모델data_model]] } 에 기초하는 DB. 혹시 https://everything2.com/title/relational+database+model 이랑 같은거? Ref. [[WpKo:관계형_데이터베이스]] read at [[Date(2021-06-06T12:36:55)]] [[WpSimple:Relational_database]] [[WpEn:Relational_database]] https://everything2.com/title/Relational+Database } [[시스템카탈로그system_catalog]] { DB는 자기자신을 설명하는 본성(self-describing nature)을 가진다. DB 구조 / 제약조건의 서술 (Description of DB structure / constraints)이 저장되는 곳이 '''system catalog'''. // [[제약조건constraint]] } [[제약조건constraint]] [[Codd_12_rules]] { RDB? RDBMS? 이기 위한 조건? 0번에서 12번까지 13개의 조건들. 사실 이것을 다 만족하는 db가 별로 없는듯? - 규칙이 엄격한 편. [[WpKo:커드의_12_규칙]] [[WpEn:Codd's_12_rules]] } database schema와 database instance. [[데이터베이스스키마database_schema]] : [[릴레이션스키마relation_schema]]들의 모임, 정적임. rel. [[스키마schema]] [[데이터베이스인스턴스database_instance]] : 특정 시점에서의 모든 [[릴레이션인스턴스relation_instance]]들의 모임, 동적임. rel. [[인스턴스instance]] 스냅샷snapshot, 데이터베이스스냅샷database_snapshot { 어떤 시각에서 / 어느 시점에서 [[database]]의 [[상태state]]. database_state. } 함수function ... SQL함수? SQL_function IN 집합함수? aggregate_function [[튜플tuple]] 하나하나에 적용되는 게 아니라 전체 묶음에 대해 적용된다. MAX, MIN, SUM, AVG ex. SELECT MAX(SALARY), SUM(SALARY) FROM EMPLOYEE; COUNT - tuple 수나 값들의 수를 되돌려준다. Ex. SELECT COUNT(*) FROM EMPLOYEE; SELECT COUNT (DISTINCT SALARY) FROM EMPLOYEE; [[complete_set]] { [[관계대수relational_algebra]], [[관계연산relation_operation]], [[관계데이터연산relationship_data_operation]], [[연산operation]], 중 어디에 분류해야 적당한지? 일단 여기에 적음. R.A operation에서 complete set이란: {σ, π, ∪, -, ×} ''대충, 이 연산(자) 집합만으로 모든 연산을 나타낼 수 있다는?? 기본연산집합 같은? - chk'' Google:complete.set+database } [[stored_procedure]] { https://foldoc.org/stored+procedure Google:stored+procedure } = tmp; to mv = 여러 DB 분류 - from http://kocw.net/home/search/kemView.do?kemId=1335378 김정준 1. 33m { 메인 메모리 DB DB의 일부 또는 전부를 main memory에 상주시켜 운용 분산 DB 물리적으로 여러 개의 DB 시스템을 네트워크로 연결하여, 논리적으로 하나의 DB 시스템처럼 사용자가 사용할 수 있는 DB 멀티미디어 DB 슷자, 문자 같은 일반 [[데이터data]]뿐만 아니라 영상 음향 등을 효과적으로 저장 및 처리하는 DB 공간 DB 공간에 존재하는 점, 선, polygon 등을 포함하는 객체의 data를 저장 및 검색하는데 최적화된 DB 비정형 DB [[빅데이터big_data]] 처리를 위해 전통적인 관계형데이터베이스(RDB)와는 다르게 설계된, NoSQL 빅데이터의 세 특징(3V) : 양(volume) 속도(velocity) 다양성(variety) 대표적 NoSQL 데이터 모델: * column * document * key-value * graph ex. MongoDB, Cassandra, HBase, ... } ER_diagram { ER 다이어그램을 그리는 설계도구로는 ER win, ER studio, Power Builder, DA# 등이 있다 (김정준) ER 모델의 구성 요소는 ||엔티티 ||[[개체entity]] ||직사각형 || || ||애트리뷰트||[[속성attribute]] ||타원 || || ||관계 ||[[관계relationship]] ||마름모 ||1:1, 1:n, m:n || } = RDB 외 = NoSQL { // tmp; chk; from Namu:NoSQL 단어 뜻은 Not only SQL 대충, 한 개 장비의 성능을 향상시키는(scale up: 수직적 확장) 비용 때문에, 일관성consistency을 약간 포기하고, 여러 컴퓨터에 데이터를 분산하는(scale out: 수평적 확장) // distributed_system distribution [[스키마schema]]없이 동작. 따라서 비형식적인 데이터를 다루는 것이 용이함. 하지만 DB가 스키마를 직접 관리하지 않는다는 것이지, 암묵적인 schema는 있음. - type 불일치 발생 가능. WpKo:NoSQL HashKr:노에스큐엘 } = 기타 = Related: [[자료,data]] [[데이터과학,data_science]] [[VG:데이터베이스,database]] links ko: Naver 지식백과: 데이터베이스 개론 https://terms.naver.com/entry.naver?docId=3431066&cid=58430&categoryId=58430&expCategoryId=58430 https://database.sarang.net/ 대개 게시판이고, 왼쪽에 'DB 문서들', '스터디'에 오래 된 문서들 보존 있음. links en: https://www.javatpoint.com/dbms-tutorial https://www.javatpoint.com/sql-tutorial ---- 오토셋 AutoSet - 2019년까지만 운영한다고.. 일단 페이지 살아있기는 함 http://autoset.net/ via 생활코딩 mysql https://opentutorials.org/course/3161 { WAMP는 Google:bitnami+wamp 검색해서 https://bitnami.com/stack/wamp/installer 를 저기선 추천. 그리고 설치 후 Windows의 'WAMP packaged by Bitnami'에도 항목 있으며 > C:\Bitnami\wampstack-8.0.20-0\manager-windows.exe 를 배경화면에 바로가기 만들어도 된다. 또한 다음 MySQL(바이너리 이름이 mysql임에도 사실은 MariaDB임) console로 가는 batch file {{{ cd C:\Bitnami\wampstack-8.0.20-0\mariadb\bin mysql -u root -p(비밀번호여섯글자이상) }}} 을 배경화면에 바로가기 만들어 놓으면 편하다. } Twins: Namu:데이터베이스