تحليل وتصميم قواعد بيانات
前往频道在 Telegram
هذا القروب يهتم بقواعد البيانات database oracle access mysql ومناقشة الافكار والمخططات وحل المشاكل البرمجية وتبادل الافكار والمعلومات وكذلك تصميم وتطوير مواقع الويب Html css javascript Jquery ajax Php
显示更多伊拉克未指定类别
4 077
订阅者
无数据24 小时
无数据7 天
无数据30 天
帖子存档
وعليكم السلام ورحمة الله وبركاته، يمكنك استخدام اللغة C لكتابة برنامج يبحث عن تحليل Boyce-Codd Normal Form لعلاقة معينة. هناك عدة خوارزميات يمكن استخدامها لتحقيق ذلك، وإليك مثالًا بسيطًا يعتمد على مفهوم الاغطية الوظيفية:
c
#include <stdio.h>
#include <string.h>
#define MAX_ATTR_COUNT 10
#define MAX_DEP_COUNT 15
#define MAX_CLOSURE_COUNT 50
int attr_count;
char attributes[MAX_ATTR_COUNT];
int dep_count;
char dependencies[MAX_DEP_COUNT][3];
int closure(char* set, int set_size, char* closure_set) {
int closure_size = set_size;
strcpy(closure_set, set);
int flag = 1;
while(flag) {
flag = 0;
for(int i=0; i<dep_count; i++) {
if(strchr(closure_set, dependencies[i][0]) && !strchr(closure_set, dependencies[i][1])) {
closure_set[closure_size++] = dependencies[i][1];
closure_set[closure_size] = '\0';
flag = 1;
}
}
}
return closure_size;
}
int is_superkey(char* set, int set_size) {
char closure_set[MAX_CLOSURE_COUNT];
int closure_size = closure(set, set_size, closure_set);
return closure_size == attr_count;
}
int find_key() {
char key[MAX_ATTR_COUNT];
int key_size = 0;
for(int set_size=1; set_size<=attr_count; set_size++) {
for(int i=0; i<attr_count; i++) {
char attr_set[MAX_ATTR_COUNT];
attr_set[0] = attributes[i];
char closure_set[MAX_CLOSURE_COUNT];
int closure_size = closure(attr_set, 1, closure_set);
if(closure_size == set_size) {
if(is_superkey(closure_set, closure_size)) {
strncpy(key, closure_set, closure_size);
key_size = closure_size;
break;
}
}
}
if(key_size > 0) {
break;
}
}
if(key_size > 0) {
printf("Key is: { ");
for(int i=0; i<key_size; i++) {
printf("%c ", key[i]);
}
printf("}\n");
}
else {
printf("No key found.\n");
}
}
void main() {
printf("Enter the attribute set (e.g. ABCD): ");
scanf("%s", attributes);
attr_count = strlen(attributes);
printf("Enter the number of functional dependencies: ");
scanf("%d", &dep_count);
printf("Enter the functional dependencies as A->B (e.g. AB->C):\n");
for(int i=0; i<dep_count; i++) {
scanf("%s", dependencies[i]);
}
find_key();
}
في هذا المثال، يتم تعريف متغيرات لعدد الأصول وعدد الاعتماديات الوظيفية. يتم قبول مدخلات الأصول والاعتماديات الوظيفية من المستخدم ويتم حساب الاغطية التالية بمعدل الانسجام الوظيفي اللازم ويتم تحديد مفتاح Boyce-Codd.
إذا أدخلت على سبيل المثال "ABCD" كمجموعة الأصول، ثم أدخلت اعتمادًا وظيفيًا "A->B" و "AB->C"، سيتم العثور على المفتاح كـ "{ A B }".
ملاحظه اخذته من chatgptAileen Calomay [
2100392322] 🔗
💢 ممــنوع إرسال الروابــط هنا🚫
💢الرجاء إزالة الرابط من الرسالة.
💢 وإلا ساضطر لتقييدك من النشر!.
🔘العقوبــة محظور 🚷 حتى 30/11/2021 08:55.انا الكلية لي قعدة أدرس فيها كلية المحاسبة فيها قسم تحليل بيانات و أنا ناوية أتخصصة إن شاء الله
package lab8;
import java.util.ArrayList;
public class graph {
static void addEdge(ArrayList > adj,int u, int v)
{
adj.get(u).add(v);
adj.get(v).add(u);
}
static void printGarph(ArrayList > adj)
{
for (int i = 0;i < adj.size(); i++){
System.out.println("\nAdjacency list of vertex"+i);
System.out.print("head");
for (int j =0; j< adj.get(i).size(); j++)
{
System.out.print(" ->"+adj.get(i).get(j));
}
System.out.println("");
}
}
public static void main(String[] args){
int v=5;
ArrayList > adj = new ArrayList>(v);
for (int i =0; i < v; i++)adj.add(new ArrayList());
addEdge(adj,0,4);
addEdge(adj,1,2);
addEdge(adj,1,3);
addEdge(adj,2,3);
addEdge(adj,3,4);
addEdge(adj,3,0);
addEdge(adj,4,0);
addEdge(adj,4,1);
printGarph(adj);
}
}
انا عندي واجهة تسجيل دخول واشتي انه لما الشخص يدحل كلمة سر خطأ ٣ مرات يخرج البرنامج
الاسلوب رقم 6 و7 معروفين
من اعلى يعني يبداء من قمة الهرم من الادرة وبعدها الفروع
مثلا شركة ما
الادراة الرئسية
الموارد
المالية
المشاريع
الانشطة الى اصغر نظام في الشركة
ومن اسفل الى اعلى
نفسة لكن بالعكس من اصغر نظام فرعي الى تصاعدياً حتى نصل الى الادارة
8 - أسلوب التركيب Synth
وهذا الاسلوب ابسط تعريف له تركيب النظام
اي ان النظام عبارة عن واحدة معروفة
يتم تركيبها مع بعض
يتم شرح كل اسلوب بمثال
لكى نتعرف على اي اسلوب نختارة عندما نقوم بتحليل نظام ما
..عليكِ بإنشاء زر في واجهة الفورم بيلدر وربطه بحدث النقر (Click event) وكتابة الأمر التالي:
ReportViewer1.Visible = true; // إظهار واجهة التقرير Form1.Visible = false; // إخفاء واجهة الفورم بيلدروبالنسبة للتقرير، عليكِ بإنشاء زر في واجهة التقرير وربطه بحدث النقر وكتابة الأمر التالي:
Form1.Visible = true; // إظهار واجهة الفورم بيلدر ReportViewer1.Visible = false; // إخفاء واجهة التقريريمكنك تغيير أسماء الفورم والكائنات المستخدمة وفقًا لما لديكِ في المشروع. يرجى ملاحظة أن إظهار وإخفاء الواجهات يتم باستخدام الخاصية Visible.
