정규화
CS/데이터베이스2024. 2. 19. 20:25정규화

개론 관계형 모델의 고안자인 에드거 F. 커드가 1970년에 처음으로 정규화의 개념을 도입하였다. 제 1 정규화를 발표한 이후에 이어서 제 2 정규화와 제 3 정규화를 정의하였고, 이후에는 레이먼드 F.보이스와 함께 보이스-코드 정규화(BCNF)를 정의하였다. 4 정규화 이후에는 다른 이론가들에 의해서 정의가 되었다고 한다. 위에가 간단한 정규화에 대한 역사였고, 본론인 정규화의 목적을 이야기하면, 정규화(Normalization)의 기본 목표는 불필요한 중복을 제거하는 것이다. 중복이 언제나 나쁜 것은 아니다. 때로는 설계상 중복이 필요할 때도 있다. 하지만 나쁜 것은 불필요한 중복이다. 이런 불필요한 중복은 데이터 베이스를 모호하게 만들고 각종 오류를 야기한다. 그렇기에 이런 불필요한 중복을 줄이기 ..

관계 대수 (미완)
CS/데이터베이스2024. 2. 19. 19:56관계 대수 (미완)

내용 수정/보완 후 추가 예정입니다.

관계모델
CS/데이터베이스2024. 2. 18. 22:44관계모델

관계모델의 소개 릴레이션 한 릴레이션은 릴레이션 스키마(relation schema)와 릴레이션 인스턴스(relation instance)로 이루어진다. 릴레이션 스키마 각 필드의 이름과 도메인을 명시한다.▼ Student ( sid: STRING, name: STRING, login: STRING, age: INTEGER, gpa: REAL ) 릴레이션 인스턴스 레코드(record)라고 하는 튜플(tuple)들의 집합을 말한다. 도메인 제약조건(domain constraints) : 해당 릴레이션의 각 인스턴스가 만족해야하는 중요 조건을 말한다. 차수(degree, arity) : 필드들의 수를 말한다. 카디날리티(cardinality) : 해당 릴레이션에 원소로 있는 튜플들의 수를 말한다. 관계 데이..

ER 다이어그램
CS/데이터베이스2024. 2. 18. 15:56ER 다이어그램

개체, 애트리뷰트, 개체집합 개체(entity) 실세계에서 다른 객체들로부터 구분될 수 있는 객체를 개체라고 한다. 개체집합(entity set) 같은 종류의 개체들의 모임을 개체 집합이라고 한다. 애트리뷰트(attribute) 개체의 속성을 말한다. 어떤 두 개체에서 애트리뷰트들이 같다는 것은 두 개체가 같은 종류라는 것을 의미한다. 즉, 개체를 구분해주는 것은 속성, 애트리뷰트라는 것이다. 개체 집합과 관련한 각 애트리뷰트에 대해, 값의 범위인 도메인(Domain)을 지정해야 한다. ex) name 애트리뷰트는 1 ~ 20 개의 문자들로 이루어진 문자열. 키(key) 주어진 집합에 속하는 한 개체를 유일하게 식별하는 값을 갖는 최소 개의 애트리뷰트들로 이루어진 집합을 말한다. 최소성을 충족하지 않아도..

21. Testing
CS/소프트웨어 공학2024. 2. 4. 17:2821. Testing

Verification & Validation Testing은 Verification과 Validation의 과정이라고도 할 수 있다. Verification과 Validation의 차이는 앞의 게시물인 Processs Activities에서 잠깐 다뤘었다. 간단하게 둘의 차이점에 대해서 설명을 하자면, Verification은 개발자 입장에서의 테스트이고, Validation은 유저 입장에서의 테스트이다. Static and Dynamic Verification Verification에는 두 가지 종류의 Verification이 존재한다. 하나는 Static, 다른 하나는 그 반대인 Dynamic이다. Static은 Software Inspections 라고 부르기도 하고, Dynamic은 Testin..

20. Design Patterns
CS/소프트웨어 공학2024. 2. 4. 16:5720. Design Patterns

Design Patterns 디자인 패턴(Design Pattern)은 특정 문맥에서 반복해서 일어나는 문제에 대한 해결방안을 말하는 것이다. 특이한 문제에 대한 해결 방안이 아닌, 일반적인 문제에 대한 해결방안을 말한다. 일반적으로 잘 일어나는 특정 문제에 대해 사람들이 효과적이라고 인정한 그런 방법을 말한다. 이런 디자인 패턴은 만들어내는게 아니라 찾는 것이다. 가장 적절한 패턴을 찾아내는 것이 우리가 하는 일이고, 이를 찾는 가장 쉬운 방법은 아주 당연하게도 미리 알고 있는 것이다. 특정 문제의 솔루션에 대한 지식을 가지고 있으면 쉽게 해결 할 수 있다. Pattern Templates 대부분의 일반적인 문제를 해결하는 디자인 패턴들은 구글에 검색하면 쉽게 찾을 수 있다. 그리고 이를 쉽게 적용할 ..

19. Software Architecture
CS/소프트웨어 공학2024. 2. 4. 15:4019. Software Architecture

Software Architecture 아키텍쳐(Architecture)라고 하면 전체적인 구조를 뜻한다. 하드웨어 아키텍쳐라고 하면 컴퓨터 구조, 하드웨어 구조를 말한다. 소프트웨어 아키텍쳐의 경우에는 큰 그림(big picture)으로 이해하면 쉽다. Big Picture 이 그림을 다시 한 번 보자. Process Activities 라는 글에서도 봤던 그림이다. ▼ 이 그림의 정체는 Android OS의 소프트웨어 아키텍쳐다. 위로 올라갈수록 소프트웨어 레벨이고, 아래로 내려갈수록 하드웨어 레벨이다. 즉, 우리가 흔히 말하는 High-level과 Low-level의 개념이다. 이렇게 위에서부터 아래까지 전체 서브 시스템들이 뭐가 있는 지 파악하기 쉽게 해주는 것이 소프트웨어 아키텍쳐이고, 전체적인..

18. Refining The Requirements Model
CS/소프트웨어 공학2024. 2. 4. 15:2618. Refining The Requirements Model

Reuse in Object Orientation Object Orientation에서 재사용(reuse)의 핵심 컨셉은 캡슐화이다. Object Orientation에서는 모든 단위에 대해서 external interface를 제공한다. Component 단위에서도 내부가 아니라, 외부 인터페이스만 제공한다. 내부가 어떻게 동작하는 지 알 필요 없고, 시스템과 서브 시스템이 상호작용할 수 있게 정의된 인터페이스가 가장 중요하다. Component 그룹화된 독립적인 시스템을 Component 라고 한다. 인터페이스를 제공하는 것을 통해 자기 자신을 제외한 나머지와 사용할 수 있도록 해준다. 이를 Plugged Together 라고 한다. Plugged Together 같이 꽂는다라는 말로, 단순히 연결(..

17. State Machine
CS/소프트웨어 공학2024. 2. 3. 20:0217. State Machine

State Machine 우리가 State Machine을 작성하는 최종 목표는 Event Action Table이다. Event는 특정 State에서 다른 State로 전환(Transition)을 일으키는 것을 말한다. 즉, Event Action Table은 특정 State에서 다른 State로 전환 될 때 발생하는 Action들을 모아놓은 것이다. Drawing State Machine 가장 위의 단계부터 그려보면서 내려가보자. Main Window & Alert Dialogue 기본 창과 알림을 보여주는 창과의 관계부터 시작된다.▼ 메인 화면(Main Window)에서 예산 확인 메뉴(Check Budget Menu)를 누르면 예산 확인 화면(Check Budget Window)으로 넘어간다. 그..

16. Designing Boundary Classes (작성중)
CS/소프트웨어 공학2024. 2. 3. 19:3916. Designing Boundary Classes (작성중)

추후 이전에 작성했던 내용을 수정하여 올릴 예정입니다. 아래의 글이 영어긴 하지만 설명이 잘 되어있으니 참고하면 좋을것 같습니다. In UML class diagrams, what are Boundary Classes, Control Classes, and Entity Classes? I'm now using NetBeans as my IDE-of-choice, and it has a plugin for UML modeling. In the class diagram, there are model elements known as Boundary Class, Control Class, and Entity Class. However, I... stackoverflow.com

image