윈도우서버과 관련된 정보를 제공합니다.
일산님이 수고해 주고 계십니다.
[ DB/Table/Field/Record 개념정리 ]
[phpMyAdmin으로 zb5용 DB만들기] 강좌 글을 쓰다가 데이터베이스(Database)에 대한 개략적인 개념 정도는
정리하고 넘어 가야겠다는 생각이 들어서 이 글을 씁니다.
이 강좌는 처음 개인 서버를 구축하고자 하는 사람을 대상으로 했기 때문에 데이터베이스에 대한 개념 정리를
먼저 올려서 데이터베이스에 대한 이해와 용어들에 대한 의미를 숙지하고 난 다음에 [phpMyAdmin으로 zb5용
DB만들기]를 올리는 것이 여러분들이 이해하는데 더 도움이 될 것이라 여겨집니다.
1. 데이터베이스(Database)란 무엇인가?
"디비? 테이블 ? 데이터베이스와 DB는 어케 다르노?
책상(Table)? 경기장(Field)?
기록(Record)해? SQL은 또 뭐꼬?
에~고, 무슨 소린지 하나도 모르겠데이~!."
어려운 내용이 아니라 용어가 낯설어서 그런 것이니 자꾸 보고 듣고 말하다 보면 친숙해지고 쉽게 이해할 수
있으니 차분한 마음으로 읽어 주시기 바랍니다.
야후 백과사전에서는 다음과 같이 데이터베이스를 설명하고 있습니다.
(대충 대충 읽기를...!^^;)
논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조함으로써 검색과 갱신의 효율화를 꾀한 것이다. 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다.
데이터베이스가 가지는 몇 가지 특성을 살펴봄으로써 그 뜻을 보다 명확히 할 수 있다. 첫째 똑같은 자료를 중
복하여 저장하지 않는 통합된 자료이며, 둘째 컴퓨터가 액세스하여 처리할 수 있는 저장장치에 수록된 자료이며, 셋째 어떤 조직의 기능을 수행하는 데 없어서는 안 되며 존재 목적이 뚜렷하고 유용성 있는 운영 자료이기 때문에 임시로 필요해서 모아 놓은 데이터나 단순한 입출력 자료가 아니라는 점이며, 넷째 한 조직에서 가지는 데이터베이스는 그 조직 내의 모든 사람들이 소유하고 유지하며 이용하는 공동 자료로서 각 사용자는 같은 데이터라 할지라도 각자의 응용 목적에 따라 다르게 사용할 수 있다는 점이다.
"으~잉? 어려운 내용이 아니라드만 이게 모~야?"
사전에서는 폼 잡느라 글케 어렵게 써 놓았나보지요.
화내지 마시고 계속해서 읽어 주세용~!^^;
웹 페이지에서 게시판들을 볼 수 있을 것입니다.
그러한 게시판의 목록이나 내용들이 바로 데이터베이스를 이용해서 저장해 놓은 데이터들입니다.
즉, 이런 게시판 같은 것들을 제로보드에서도 MySQL이라는 데이터베이스를 이용하여 만들고 있습니다.
그러니까 웹 페이지에 게시판의 목록을 보여주고, 수정하고 저장하는 기능들은 zb5의 경우 PHP 언어와 HTML,
CSS, Javascript 등으로 구사하고 있으며 게시판에 관련된 모든 내용(Data)들은 MySQL 데이터베이스 서버에
의해 저장되고 있는 것 입니다.
이러한 데이터들의 집합체를 넓은 의미로 데이터베이스(Database, 약칭 DB)라 합니다.
그렇지만 여기에서 의미하고 있는 DB는 좁은 의미의 데이터베이스로써,
MySQL이 저장하는 데이터(Data)들의 덩어리인 데이터들의 집합체를 의미하고 있지요.
다음의 설명들을 계속 읽으시면 DB가 어떻게 구성된 데이터들의 집합체인지 알 수 있게 될 것입니다.
2. 필드(Field)와 레코드(Record) 그리고 테이블(table)
아래로 쭈~욱 내려가서 현재 이 강좌가 올려진 게시판을 살펴봅시다.
번호, 제목, 글쓴이, 일자, 추천, 조회 등의 제목이 있지요?
이러한 제목들 밑으로 올려진 번호들(1~13)과 여러 가지 제목들, 글을 쓴 회원들의 이름, 글이 올려진 날짜,
추천 숫자, 조회된 숫자들이 나열되어 있을 것입니다
이렇게 번호라는 항목에 숫자들이 저장되어 있고 제목이라는 항목에는 각 글의 제목들이 저장되어 있고,
일자라는 항목에는 글이 올려진 날짜들이 저장되어 있고.....
그러니까 같은 종류의 의미를 갖는 데이터들을 저장하기위한 항목들이 있어야겠네요.
즉, 같은 종류의 의미를 갖는 데이터들을 저장하기위한 항목을 필드(Field)라 합니다.
번호, 제목, 글쓴이, 일자, 추천, 조회 등이 Field가 되는 것입니다.
번호 Field에 번호들이 저장되고, 제목 Field에 제목들이 저장되고, 일자 Field에 글을 올린 날짜들이
저장되는 것이지요.
이 글을 읽고 있는 여러분들은 게시판에 글을 올려 본 경험이 있을 것입니다.
글을 올릴 때 글 제목, 이름, 내용 등을 입력하고 완료 버튼을 클릭해서 저장해 보았지요?
그렇게 입력한 데이터들이 아무렇게나 연관성 없이 흩어져 저장되는 것이 아니라 하나의 덩어리(?)로 저장되는
것입니다.
이렇게 Field에 연관성 있게 저장되어 있는 데이터들의 집합체를 바로 레코드(Record)라 합니다.
아래의 그림을 보시면 금방 이해가 되실 것입니다.
헌데, 홈 페이지에는 게시판이 한 개만 있는 것이 아니고 여러 개를 사용하게 됩니다.
그렇다보니 문제가 있네요.
A라는 게시판의 Field 명칭과 B라는 게시판의 Field 명칭이 같을 경우
같은 DB안에서 어떻게 구분하게 되어 있을까요?
그러한 점을 해결하기 위해서 바로 DB안에서 테이블(Table)을 사용하는 것입니다.
DB는 Field로 직접 구성되어지는 것이 아니고 Table로 구성되는 것이며,
그 Table을 구성하는 요소로써 Field가 사용되는 것입니다.
바로 각 데이터들을 저장하는 항목인 Field들로 구성된 데이터의 집합체를 테이블(Table)이라 하는 것이지요.
예를 들어 게시판 A에서 사용할 Table을 만들어서 Lecture1 이라 이름을 지어 DB에 저장하고
또, 게시판 B에서 사용할 Table을 만들어서 Lecture2 라 이름을 지어 같은 DB에 저장해 놓았다면
Lecture1과 Lecture2 Table을 구성하고 있는 Field의 이름이 서로 같다고 해도 서로 구분되어 질 것입니다.
지금까지의 내용을 종합해 보면
각 데이터들을 저장하는 항목인 Field들로 구성된 데이터의 집합체를 Table이라하며,
하나의 DB는 여러 개의 Table들로 구성될 수 있다.
Field에 연관성 있게 저장되어 있는 데이터들의 집합체를 Record라 한다.
DB 또한 하나만 존재할 수 있는 것이 아니라 MySQL의 최고관리자인 root 사용자로 로그인 하여 마음대로
만들어 낼 수 있습니다.
라고 말할 수 있겠지요.
“아니 이렇게 간단혀?”
“결론만 얘기하면 될 것을 와 이로코롬 장황하게 설명했다냐~?”
그런 생각이 드신다면 강좌의 목적을 달성했다고 볼 수 있겠습니다.
^^;
올려 놓은 글을 다시 읽어보니 중요한 한 가지가 생각나서 추가로 삽입해 넣습니다.
Recored는 정의하지 않습니다. Recored는 위의 두 번째 그림을 보면 알 수 있듯이
정의하는 것이 아니라 데이터가 저장되면 존재하게 되는 것이니까요.
데이터베이스에 저장된 데이터들은 PHP의 [MySQL 데이터베이스 API 함수]들을 이용, MySQL에 접속해서
데이터를 불러왔을 때 그 때 Record의 개념이 사용됩니다.
이 정도에서 끝내야 겠네요.
더 깊이 들어가면 머리 아포~요!
데이터베이스에 대해 전문적으로 깊은 지식을 알고 있으면 더 없이 좋겠지만 현재의 입장이 관련된 지식들을
모두 공부해서 서버를 구축하고 홈 페이지를 만드는 것이 아니고 여러 가지 툴(zbxe 포함)들을 이용해서 보다
더 쉽게 웹 디자인을 하기 위한 것이기 때문에 그렇게 하기 위해 최소한 위와 같은 내용만이라도 알고 있으면
zbxe를 이용해서 홈 페이지를 만드는 데 큰 지장은 없으리라는 생각이 듭니다.
물론, zbxe를 설치하고 사용하는 데는 DB의 생성과 사용자만 만들어 주면되므로 위의 내용을 모르더라도 다음
강좌들을 따라만 하면 가능합니다만 게시판에 관련된 곳을 수정하려면 아무래도 위의 내용을 이해하고 있으면
많은 도움이 될 것입니다.
쉬운 얘기를 장황스럽게 긴 글로 썼으나...
인내심을 갖고 여기까지 읽어 주신 여러분께 감사 말씀드립니다...!^^;
“캄~사합니다!”










서버관리

윈도우 



와우!~데이터베이스에 대해서 다시 한번 정리하기에 좋은 강의였어요 ^^*