반응형

간단 지식/Database 9

10. Oracle DB, sql developer 설치, scott 계정 생성, 에러 해결, sqlplus 명령어

일전에는 MySQL을 사용했었는데 언젠가 안드로이드 스튜디오랑 연동할 필요가 있는 작업을 할때 꽤나 불편했던 기억이 있다. 안드로이드 스튜디오랑 MySQL은 PHP를 이용해서 연동을 해야하는데 너무 과정이 복잡했고 똑같은 절차를 밟았는데도 결국에는 연동에 실패했다. 아직도 해결을 못해서 이참에 JSP를 이용하는 오라클 DB를 설치해봤다. 일단 오라클 계정이 있어야 한다. 없으면 생성하면 된다. 그리고 아래 링크를 타고 가서 자신의 운영체제에 해당하는 zip파일을 다운 받는다. www.oracle.com/database/technologies/oracle-database-software-downloads.html 압축 해제한 후 setup을 실행하면 인스톨러가 뜰텐데 따로 설정할 필요없이 next만 눌러주..

08. SQL을 이용한 데이터 조작 - insert, delete, update, search

지난 글에서 DB 서버에 DB를 생성하고 3가지 table을 생성했다. 이제 우리는 데이터 조작을 할 건데 insert, delete, update, search 중 가장 먼저 해야하는 것은 insert이다. 왜냐하면 table이 생성되긴 했지만 그 안에는 텅 비어있기 때문에 delete, update, search는 할 수 없다. university라는 이름의 DB에 있는 student table에 데이터를 insert해보겠다. insert into student(sno, sname, year, dept) values (100, '소현', 4, '컴퓨터공학과'), (200, '뫄뫄', 1, '영어영문학과'), (300, '묘묘', 3, '기계공학과'), (400, '띠띠', 3, '부동산학과'), (5..

07. SQL과 MySQL

SQL과 MySQL은 같은 개념일까 다른 개념일까? 다르다고는 알고 있지만 정확히 설명할 수 있어야 안다고 할 수 있다. SQL은 구조화 질의어로, DDL, DML, DCL의 기능인 질의어, 조작어, 제어어 기능을 모두 제공한다. SQL이 많은 사람들에게 사랑받는 이유는 사용자에게 친화적인 인터페이스 덕분이라고 생각한다. 이러한 인터페이스는 SQL이 고급에다가 비절차적 언어라는 점에서 비롯되었다. 그리고 관계형 데이터베이스를 관리하기 위해 오라클에서 지원하는 시스템이 바로 MySQL이다. 즉 SQL은 언어, MySQL은 시스템이다. SQL에서는 여태까지 불렀던 relation, tuple, attribute과 같은 관계 모델의 용어 대신 일반 용어를 사용한다. relation -> table tuple ..

06. 관계대수의 확장(세미 join, 외부 join, 외부합집합)과 집계연산

관계대수는 join과 합집합에 대해 확장이 가능한데 tistory에서는 관련 기호를 제공하지 않아 이미지로 대체하겠다. 역시 이론보단 실전이니 각 연산에 대한 예시를 하나씩 들어보겠다. 세미 join에 대한 예제다. relation R relation S A B C 구분칸 B C D a1 b1 c1 b1 c1 d1 a2 b1 c1 b1 c1 d2 a3 b1 c2 b2 c3 d3 a4 b2 c3 relation R과 S를 세미 join 하기 위해 먼저 relation S에 대해서 R과 S에 모두 속한 부분만 뽑아 새로운 relation을 만든다. 두 relation에 모두 속할 수 있는 값들은 무조건 attribute B,C에 해당하니까 열을 2개로 추리고 시작하면 된다. B C b1 c1 b2 c3 새롭..

05. 관계대수 - select, project, join

DB에 데이터를 저장한 후 사용을 하려 할 때 다들 멈칫할 것이다. 내가 필요한 데이터는 이 정도뿐인데 DB에 저장된 데이터는 방대하기 때문이다. 그래서 생긴 것이 관계 데이터 연산을 위한 관계 데이터 언어인 '관계대수'라는 것이다. 관계 데이터 언어는 정형어로써 절차 언어인 관계대수와, 비절차 언어인 관계해석으로 구분된다. 우리가 조명할 관계대수는 일반 집합 연산자와 순수 관계 연산자로 구분되는데 말 그대로 일반 집합 연산자는 집합에, 순수 관계 연산자는 관계에 적용된다. 참고로 절차언어라는 의미는 how와 what을 명세하고, 비절차적 언어는 what만 명세한다. 일반 집합 연산자에는 합집합, 교집합, 차집합, 카티션 프로덕트(곱집합) 이 해당된다. 차집합을 제외한 연산자들은 결합법칙, 교환법칙이 성..

04. DB의 기본키와 왜래키

데이터베이스에는 'key' 라는 것이 존재하는데 이는 무결성이라는 개념을 위해 등장했다. 쉽게 말하자면 각 투플을 유일하게 식별할 수 있는 attribute의 집합이 바로 키다. 키의 종류에는 1) 후보키 2) 기본키 3) 슈퍼키 4) 대체키 5) 왜래키 가 있다. 후보키 relation에 속하고, 유일성과 최소성을 만족하는 attribute들의 집합 - 유일성: 각 투플에 대한 key값은 유일하다는 특성 - 최소성: key는 투플을 식별할 수 있는 attribute만이 해당된다는 특성 기본키 후보키 중에 지정된 단 하나의 키 모든 DB는 기본키가 있어야 하며 이는 DB설계자가 지정 따라서 각 투플에 대한 기본키 값은 항상 유효해야 하며 null값은 허용되지 않음 슈퍼키 유일성은 만족하지만 최소성은 만족..

03. 관계형 데이터베이스 (Relational Database)

원래는 이번 글에서 3단계 데이터베이스와 사상, DDL, DML, DSL, DCL, DBA, DBMS의 구성요소에 대한 내용을 설명하려 했다. 알면 좋은 개념들이긴 하지만 핵심만 기록하고자 하는 이 블로그에 기록할 정도는 아니라고 판단해서 곧장 관계형 데이터베이스로 넘어왔다. 혹시라도 위에 언급한 개념들에 대해 궁금한 점이 있다면 댓글로 물어보면 답해주겠다. 빠른 습득을 위해 mysql을 먼저 배운 사람이 있다면, 그리고 자신이 어느 정도 sql문을 짤 줄 안다고 생각하면 오산이다. 그 무엇보다도 관계형 데이터베이스(RDB)가 뭔지 알아야 DB 세계의 초입에 발을 뗀 것이라고 생각한다. 데이터베이스면 데이터베이스지, 관계형이라는 수식어가 왜 붙었는지 궁금했다. 일단 관계형 데이터베이스는 관계형 데이터 모..

02. DB를 관리하는 DBMS

대부분의 기술이 그렇듯 데이터베이스와 같은 핵심 기술은 관리자가 필요하다. 이것을 Database Management System(DBMS)라고 부른다. DBMS 구조는 심플하고 효율적이다. 단번에 이해를 돕기 위해 그림을 하나 준비해봤다. 초창기 DBMS라는 개념이 없을 시절, OS가 지원하는 파일 중심 데이터 처리 시스템을 사용했다. 파일 중심 데이터 처리 시스템 - 각 응용 프로그램이 논리적 파일 구조를 정의하고 직접 물리적 파일 구조를 구현 - 각 응용 프로그램이 물리적 데이터 구조에 대한 접근 방법을 구현 - 각 사용자가 데이터와 이를 처리하는 프로그램을 모두 관리 - 응용 프로그램 간의 데이터 공용이 불가능 즉 DBMS와 다르게 각 응용 프로그램이 개별적으로 data file을 갖는 구조인 시..

01. DB를 공부하기 전에 알아야 하는 필수적인 내용

3학년 2학기에 DB를 배우면서 2학년 때 배웠더라면, 하다못해 1학기에 배웠더라면 좋았겠다고 생각했다. 그만큼 데이터베이스는 컴퓨터공학 기술 중 밀접하고 즉각적인 반응을 보이는, 가장 실용적인 기술 중 하나다. 무작정 디비를 설계하고 mysql을 사용해보는 마구잡이식 개발보단, 데이터가 무엇이고 데이터베이스가 왜 생겨났고 구조가 어떻게 생겼는지 를 먼저 알면 좀 더 이 분야를 이해하는데 도움이 되고 좀 더 재밌게 공부할 수 있다. 영어 data는 번역하면 '자료'다. 자료하면 무엇이 떠오르는가? 자료와 가장 연관깊은 단어 중에는 '정보'가 있다. 정보와 자료는 같을까 다를까? 적어도 컴퓨터공학을 전공하는 사람이라면 다르다고 해야한다. ㅎㅎ data는 말그대로 측정된 값을 말하고, info는 그렇게 만들..

반응형