2009-06-12 3 views
1

Ein Datenbank-Server dient alle Anfragen, Wetter von lokalen-Host-oder Remote-Client und jeder Anfrage zu hören, muss ein Datenbank-Server auf einen Port laufen, um Anfragen zu hören dieser Hafen.Microsoft Access ist eine bloße Datei oder Datenbank-Server

Soweit ich weiß, Zugang Microsoft läuft nicht auf jedem Port, und es ist nicht möglich, Microsoft Zugriff auf Remote-Rechner mit

DriverManager.getConnection("URL", "user", "password"); 

aber möglich, wenn Ihre Daten- anfordern Quelle ist MySQL, Oracle, etc ... mit,

DriverManager.getConnection("jdbc:mysql://ipAddress:portNo./schemaName", "user", "password"); 

(wenn ich falsch bin, bitte korrigieren Sie mich).

Bitte u Jungs hier helfen mir mit dem Konzept, Wetter Microsoft Access ist ein

eine bloße Datei zum Speichern von Daten (weil es auf einem beliebigen Port nicht läuft tun),

oder ein Datenbankserver (weil für Microsoft-Zugriff Typ-1-Treiber verfügbar ist, bedeutet, es muss eine Datenquelle sein, da Treiber nur für Datenquellen verfügbar sind).

+4

Wenn Datenbankserver Autos sind, dann wäre SQL Server ein BMW, Oracle wäre ein Mercedes. Der Zugang ist das Auto, das Fred Flintstone fährt ... –

+0

Und Fred's Auto ist billiger, einfacher zu warten und bekommt einen besseren Benzinverbrauch. – JeffO

Antwort

1

MS Access ist ein dateibasiertes Datenbanksystem, technisch gesehen aber auch viele andere Datenbanksysteme. SQL Server zum Beispiel speichert seine Daten in einer einzigen Datei und kann sich ähnlich wie Access verhalten. SQL Server verfügt darüber hinaus über viele zusätzliche Funktionen.

Aber ist Zugriff auf eine Datenbank Server? Nun, das hängt von Ihrer Definition ab, was ein Server tun soll.Es ist möglich, eine Access-Datenbank zu erstellen und ihr einige serverähnliche Funktionen zu geben, indem Sie Code schreiben, um Ihre Daten an eine Client-Anwendung zu "liefern". Kenne ich schon. Tatsächlich war Access in der Vergangenheit für mehrere billig gehostete Websites als Datenbank für z. führe ein Forum oder Gästebuch auf.

Um die Dinge interessanter zu machen, können Access-Datenbanken über COM zugegriffen werden. Und COM-Objekte können auf einem Remote-System erstellt werden. Theoretisch können Sie mit ADO bereits auf eine Access-Datenbank auf einem anderen Computer zugreifen.

Der Zugriff ist auch in der Lage mehrere Benutzer zu bedienen und bietet bei Bedarf einige grundlegende Sicherheit.

MS Access ist auch mehr als nur ein Datenbankdateiformat, obwohl die meisten Menschen dies vergessen. MS Access ist Teil von MS Office und bietet daher wesentlich mehr Funktionalität als nur ein dateibasiertes Datenbanksystem. (Andererseits ist Paradox mehr als nur eine dateibasierte Datenbank, wenn Sie das komplette Produkt von Corel kaufen und nicht nur die Datenbankdateien plus Treiber.)

Btw, der Begriff "Server" kann verwirrend sein. Sie müssen nicht etwas auf einem Port ausführen, um es zu einem Server zu machen. Grundsätzlich ist ein Datenbankserver nur ein Programm, das anderen Programmen und Computern Datenbankdienste zur Verfügung stellt. Mit Access können Sie beides technisch tun, also ja: Access ist ein Datenbankserver. (Obwohl eine sehr primitive.)

+0

Danke, dass Sie Interesse an meiner Frage haben Herr Alex ..... Nachdem ich Ihre Antwort gelesen hatte, bin ich in ein anderes Problem geraten ... Eine Identität muss nicht auf einem Port laufen, um das Kriterium der Datenbankserver zu erfüllen. Dann werden Sie plz, sagen Sie mir, warum wir Port für MySql, oracle angeben müssen. Sind keine Ports vorhanden, die eine Anfrage abhören (vom lokalen oder Remote-Client). – mogli

+0

MySQL und Oracle verwenden Ports, um sich über das Internet (oder Intranet) mit dem System, auf dem sich die Datenbank befindet, zu verbinden. Auf einige Datenbanken kann jedoch auch über Named Pipes zugegriffen werden. In diesen Fällen müssen Sie keinen Port festlegen, da die Verbindung vom Betriebssystem unter der Named Pipe hergestellt wird. Alles, was Sie wissen müssen, ist der Computername des Datenbankservers und der Name der Named Pipe. (Sie können eine Verbindung mit SQL Server über Named Pipes herstellen.) Lokale Clients benötigen nicht einmal Named Pipes oder Ports. Sie könnten einfach gemeinsam genutzten Speicher verwenden, um Daten hin und her zu senden. –

+0

Ich bin ein Under-Graduate, so verstehe nicht viel über diese Technologien wie Named Pipes ..... jede Quelle von Informationen über Named Pipes wird sehr geschätzt .... Prost Herr Alex :-) – mogli

0

AFAIK, MS Access ist eine Datenbank und Sie können sich über ODBC usw. damit verbinden, aber es ist kein Datenbankserver in der Art wie SQL Server, MySQL, Postgres oder Oracle Datenbankserver sind.

0

Zugriff ist eine Datei, die über die JET-Engine oder viele andere angeschlossen werden kann. Aber es ist eine Datei. Dies bedeutet, dass, wenn zu viele Leute versuchen, sich mit ihm zu verbinden, es Geschichten darüber gab, dass es korrupt wurde und die ganze Datenbank verloren ging! Es ist nicht annähernd so leistungsstark wie die anderen erwähnten Datenbank-Engines.

+0

Wie ist es möglich durch Jet-Engine (bis Port Nr. Ist nicht angegeben, coz ein Datenbank-Server hört Anfrage nur an einem bestimmten Port). Eine etwas detailliertere Erklärung über Jet-Engine oder DSN wird sehr geschätzt. :-) plz stört mich nicht Andrew (ich bin ein Neuling zu jdbc) – mogli

+0

Falsch. Access ist eine Datenbankanwendung und nicht nur eine Datei. Benutzer verwenden meist nur die Access-Datenbankdatei und ADO/ODBC-Treiber, Access ist jedoch mehr als das. Es ist wahr, dass es nicht so mächtig wie SQL Server oder Oracle ist. Es stimmt auch, dass die Datenbank beschädigt werden kann, wenn zu viele Verbindungen für Access geöffnet werden, aber insgesamt ein Datenbankserver ist. –

+0

Korruption wird fast immer durch fehlerhafte Hardware oder den Versuch verursacht, Access über eine WAN- oder drahtlose Verbindung zu verwenden. Ich habe noch nie einen Fall gesehen, in dem es von zu vielen Benutzern beschädigt wird. Und ich habe gerade über jede comp.databases.ms-access- und microsoft.public.access-Newsgruppe gelesen, in der Korruption erwähnt wird, seit die Newsgroups zum ersten Mal erstellt wurden. Weitere Informationen finden Sie in der Microsoft Access Corruption FAQ unter http://www.granite.ab.ca/access/corruptmdbs.htm Ich stimme zu, dass SQL Server und andere sind leistungsfähiger und robuster. –

2

Microsoft Access-Datenbanken können über ODBC oder mit einem gemeinsam genutzten Dateisystem verwendet werden. Aus diesem Grund können sie als Multiuser-Datenbanken betrachtet werden.

Dies ist nicht wirklich ein Datenbankserver von dem Standpunkt aus, dass es nicht einen Ort gibt, der Anfragen an Clients bedient. Sofern Sie ODBC nicht verwenden, verfügt jeder "Client" über eine eigene Kopie der Datenbank-Engine.

Der Zugriff ist nicht für viele Benutzer gedacht und hat nicht viele der Eigenschaften, die Sie normalerweise von Datenbankservern halten. Einschließlich Skalierbarkeit und Robustheit.

+1

Für Multi-User-Umgebungen (wie oben beschrieben) funktioniert Access gut, solange die Anzahl der Benutzer niedrig bleibt. Ich würde behalten." Es ist fast 15 Jahre alt. Viele kleine Unternehmen entscheiden sich dafür als kostengünstige Datenbanklösung. – Praesagus

+0

// Christopher saya, Wenn Sie nicht ODBC verwenden, hat jeder "Client" eine eigene Kopie des Datenbankmoduls. Tut es bedeutet, dass, wenn der Client eine Anfrage stellt, zuerst eine Kopie von .mdb auf seinem/ihrem System heruntergeladen wird, und die von der Abfrage vorgenommenen Änderungen nicht in der .mdb-Datei auf dem Server – mogli

+0

widergespiegelt werden Probleme, selbst wenn die Anzahl der Benutzer niedrig bleibt – mogli

3

Der Zugriff bietet keine Netzwerkverbindung über eine Dateifreigabe hinaus. Es gibt keinen "Access" -Port.

+0

dann, wie alle Arten von Treibern für den Zugriff zur Verfügung gestellt werden (Typ-1 bis Typ-4), da Treiber nur für Datenserver erstellt werden sollen. – mogli

+1

Ich bin ziemlich sicher, dass es einen Jet-ODBC-Treiber zu flachen CSV-Dateien gibt. –

+0

Ja, es gibt ODBC-Treiber für CSV-Dateien.Und für tabulatorgetrennte Dateien. Auch für Paradox und DBase, die ebenfalls sehr primitive Datenbanksysteme sind. Andererseits können Sie einen ODBC-Treiber schreiben, um grundsätzlich alles, was Sie mögen, als Datenbank zu verwenden. Und ich denke, Sie können sogar Excel über ODBC ... –

0

Es läuft nicht auf einem Port. Es ist nur eine Datei.

+0

dann zugreifen, wie alle Arten von Treibern für den Zugriff bereitgestellt werden (Typ-1 bis Typ-4), da Treiber nur für Datenserver erstellt werden sollen. – mogli

+0

Wer sagt? Wo steht geschrieben, dass Treiber nur für Datenserver erstellt werden sollen? –

+0

Ich meine zu sagen (in Bezug auf jdbc), dass Treiber für den Zugriff auf Server, nicht Dateien sind (wenn ich falsch liege, korrigieren Sie mich). – mogli

3

Access ist keine Datenbank zu beginnen.

Es handelt sich um eine Anwendungsentwicklungsumgebung, die mit der Standarddatenbank-Engine Jet (oder ACE in A2007, die nur eine aktualisierte Version von Jet ist) ausgeliefert wird und die Jet-MDBs oder ACE-ACCDBs zum Speichern der Anwendungsobjekte verwendet.

Ihre Frage betrifft nicht Access. Es handelt sich um die Jet-Datenbank-Engine.

Jet ist keine Serverdatenbank. Auf dem Server wird kein Prozess ausgeführt, über den die gesamte Kommunikation mit dem Jet-Datenspeicher verwaltet wird.

Stattdessen ist Jet ein dateibasiertes Datenbanksystem. Jeder Benutzer führt Jet lokal im Speicher aus und öffnet die Datenbankdatei im gemeinsam genutzten Modus. Das Sperren der Datenbankdatei wird über die LDB-Datei verwaltet.

ODBC bietet keine Serverfunktionalität für Jet-Daten. Es ist einfach ein anderer Benutzer einer Datei.

+0

Szenario: .mdb, das einen mit dieser SQL-DDL definierten Prozess enthält: CREATE GetCurrentTimestamp AS SELECT NOW(); Auf einer anderen Maschine, deren Uhr 12 Stunden vor der Maschine mit der .mdb ist, verbinde ich mich mit der .mdb und führe diese SQL-DML aus: EXECUTE GetCurrentTimestamp; Ist der Wert das aktuelle Datum/die Uhrzeit meines lokalen Rechners oder der des Rechners mit der MDB? – onedaywhen

+0

Wie greifen Sie auf die Jet-Datenbank zu? Über den Webserver? Über ODBC? Über Zugriff? Die Antwort auf die Frage hängt davon ab, da das Datum durch das Systemdatum des Computers bestimmt wird, in dessen RAM die Jet-Daten verarbeitet werden. –

+0

Meine war rhetorisch und sollte inspirieren, wo genau ACE/Jet betrieben wird. Aber wenn Sie eine Antwort geben wollen, wie wäre es mit allen dreien von Ihnen? :) – onedaywhen

0

Wenn Sie die Datei auf eine Windows-Datei freigeben, dann ist das Protokoll SMB, der Port ist 445. Die Maschine mit der Datei heißt ein Dateiserver, also in gewisser Weise ist es eine Server-App, aber MS- Der Zugriff ist nicht der Server, die SMB-Bits sind. Was SMB nicht tut, ist, dass ein echter SQL-Server den gleichzeitigen Zugriff verwalten würde.

+0

Sind Sie sicher, dass Sie Port 445 und nicht 137/139 usw. meinen? Sie haben Recht, dass dies kein "Access" - oder "Jet" -Port ist, sondern einfach der Port für SMB-Netzwerke. Und Sie sind sicher richtig, dass das der Punkt ist - Ihre Jet-Daten werden über die Dateifreigabemechanismen Ihres Servers zugegriffen. –

1

Bei der Feststellung, ob etwas ein Server ist oder nicht, ist die Frage, ob es Ports hat, ein Ablenkungsmanöver. Ports sind nur ein Mittel der Interprozesskommunikation. Wie bereits erwähnt, verwenden andere Server Named Pipes oder Shared Memory, um mit Clients zu kommunizieren.

Das architektonische Merkmal, das einen Server wirklich zur Prozessisolierung macht. Dies gilt unabhängig davon, ob es sich um Webserver, Datenbankserver oder Bildschirmserver wie X Windows handelt. In jedem Fall haben Sie eine wichtige Ressource, die Sie sehr sorgfältig bewachen möchten. Daher lassen Sie nichts außer ein paar ausgewählten Prozessen es berühren. Wenn ein anderer Prozess Zugriff auf diese Ressource haben möchte, kann er nicht direkt damit arbeiten. Sie müssen dem Serverprozess eine Nachricht senden, "Hey Server, bitte führe Operation X auf Y aus und sende mir die Ergebnisse". Der Kanal, der zum Senden der Nachricht verwendet wird, ist relativ unwichtig, der entscheidende Punkt ist, dass ein unabhängiger Prozess mit der Verwaltung der Ressource beauftragt ist.Vergleichen Sie dies mit Access (oder, da jemand die Jet-Datenbank-Engine richtiger angegeben hat). Wenn Ihre Anwendung eine Access-Datenbank verwendet, führt Ihr Prozess die Datei in der Datenbank aus, führt die Datensatzsperrung durch und führt die Indexsuchen durch. Dies ist alles bequemerweise durch viele Schichten von Bibliotheksaufrufen verborgen, und es beinhaltet wahrscheinlich viele Schalter zum Kernelraum, aber am Ende ist es immer noch Ihr Prozess, der alle CPU-Zyklen bekommt und die ganze Arbeit erledigt. Dies gilt auch dann, wenn Sie über ODBC auf die Access-Datenbank zugreifen, bei der es sich lediglich um eine weitere Schicht von Bibliotheksaufrufen handelt.